2013-02-27 173 views
2

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

+0

Imho,没关系。在JDK7中没有标准的类。 – 2013-02-27 09:03:59

+0

对我来说没关系。我想知道的是,你添加了“多线程”标签,但没有直接在你的文章中提到它。 – 2013-02-27 09:22:19

回答

1

对于你提到的链接,我看不出有什么差别。

观察者模式的目的是,当一个对象的状态改变时,它通知有关的变化感兴趣的各方(听众/观察者),并让听众根据状态改变做出反应。

如果听者的状态变化,通过设计,通过其他有关方面观察,我看不出有任何理由为什么我不能使用观察者模式的发布活动。

然而,它仅仅是另一名观察员,观察到的关系。没有特别的“链接”发生。

有点OT:更适合称为链接的东西是:被观察的对象O将事件E发送给监听器A,并且A将传播该事件给另一个监听器B.然而在逻辑上他们都在监听事件起源于O.这种“链接”可以通过使用装饰模式来完成。

0

你的类应该实现这两个接口:观察者和主体。 Challange正在向所有观察者注册适当的对象。
所有你需要的是增加notifyObservers()notify()方法Observer类(link to wiki)。
请注意,您可以启动无限循环的通知:A =>B =>C =>A => ...依此类推。