3

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

4

2 回答 2

2

对于您提到的链接,我认为没有任何区别。

观察者模式的目的是,当一个对象的状态发生变化时,它会通知相关方(监听者/观察者)这个变化,让监听者根据状态变化做出反应。

如果按照设计,其他相关方观察到侦听器的状态变化,我看不出有任何理由不能使用观察者模式来发布事件。

然而,这只是另一种观察者-可观察的关系。没有发生特殊的“链接”。

有点 OT:更适合称为链接的东西是:被观察对象 O 向侦听器 A 发送事​​件 E,A 会将事件传播给另一个侦听器 B。但是从逻辑上讲,它们都在侦听源自 O 的事件。这种“链接”可以通过使用装饰器模式来完成。

于 2013-02-28T01:01:18.410 回答
0

你的类应该实现两个接口:观察者和主题。挑战正在将所有观察者注册到适当的对象。
您只需要在类中添加notifyObservers()方法notify()Observer链接到 wiki)。
请注意,您可以启动通知的无限循环:A=> B=> C=> A=> ... 等等。

于 2013-02-27T09:06:15.573 回答