[問題][已解決]讓下層元件通知上上層元件進行更新

作者: liu2007 (è–¯)   2019-08-23 13:41:02
也許版上有文章但一時之間不知道要下什麼關鍵字去搜尋
用「下層」或「上層」當作關鍵字只找到這篇有類似問題
https://www.ptt.cc/bbs/java/M.1210239349.A.CD6.html
我也去看了Design Pattern的觀察者模式
但看完我還是有幾個疑問
首先先簡單描述我的問題:
這是我的UI (javaFX)
https://imgur.com/BG5pDme.jpg
當按鈕被按下的時候
我希望他能夠能夠請他上上上層的TabPane類別新增一個新的Tab
https://imgur.com/OulyOzs.jpg
觀察者模式是一對多,也就是「一個」上層更新狀態的時候
會觸發「多個」訂閱上層的下層們進行更新
但在我這個問題中是反過來的
下層的按鈕會有很多個
而上層的TabPane只有一個
下層有通知上來上層的時候,上層要進行相對應的動作
如果是用訂閱者和報社的關係來比喻的話
就變成TabPane這個訂閱者要去跟好幾家Button報社訂閱
這樣我覺得怪怪的...
如果以我目前所知的方法
就是讓TabPane類別 implement Interface
然後在新增Tab的時候把自己 this 給傳下去
可是Tab和Button中間還有一個ScrollPane類別
所以Tab在new ScrollPaen的時候又把從TabPane拿到的 callback給傳下去
這樣做我自己真的是覺得超級詭異
請問我這個問題是屬於觀察者模式可以解的Design Pattern嗎?
我到底該怎麼解這個問題呢?
作者: ssccg (23)   2019-08-23 15:10:00
可以解,但實際上你每個button按下去都是不同的Subject是你實際上的用法有個Observer(TabPane)對收到一堆不同訂閱要做同一件事,不代表那些Subject相同,也不代表一定沒別的Observer至於實作問題,你不想傳一堆callback reference,可以看看Event Bus

Links booklink

Contact Us: admin [ a t ] ucptt.com