[问题][已解决]让下层元件通知上上层元件进行更新

楼主: 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