观察者/可观察模式的链接

时间:2013-02-27 08:48:34

标签: java multithreading oop design-patterns observer-pattern

是否存在形成“复合”观察者/可观察者的设计模式?
我的意思是我有一个可观察的A,通知听众一些变化 每个监听器也是一个可观察的,并通知其自己的监听器(在某些操作中,它通过第一个可观察的通知触发了哪个动作)。
观察者/观察者的“链接”是否可以作为设计,或者是否有标准模式?

2 个答案:

答案 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 => ......等等。