是否存在形成“复合”观察者/可观察者的设计模式?
我的意思是我有一个可观察的A
,通知听众一些变化
每个监听器也是一个可观察的,并通知其自己的监听器(在某些操作中,它通过第一个可观察的通知触发了哪个动作)。
观察者/观察者的“链接”是否可以作为设计,或者是否有标准模式?
答案 0 :(得分:1)
对于你提到的链接,我认为没有任何区别。
Observer模式的目标是,当对象的状态发生变化时,它会通知感兴趣的各方(监听者/观察者)有关变化的信息,并让听者根据状态变化做出反应。
如果听众的状态变化在设计上被其他相关方观察到,我认为没有任何理由不能使用观察者模式来发布该事件。
然而,它只是另一种观察者可观察的关系。没有特别的“链接”发生。
有点OT:更适合被称为链接的东西是:观察对象O向侦听器A发送事件E,A将事件传播到另一个侦听器B.但从逻辑上讲,它们都在监听事件发生从O.这种“链接”你可以通过使用装饰模式来完成。
答案 1 :(得分:0)
您的类应该实现两个接口:observer和subject。 Challange正在将所有观察者注册到适当的物体上
您只需在notifyObservers()
类(link to wiki)中的notify()
方法中添加Observer
。
请注意,您可以启动无限循环通知:A
=> B
=> C
=> A
=> ......等等。