两个可观察的依赖

时间:2014-12-10 06:23:37

标签: design-patterns observer-pattern observable

我需要有2个可观察对象:1(O1)作为观察者对象A,另一个(O2)作为观察者对象B和A.对象B和A是不同类型的对象。 我应该如何实现它来做2个可观察的,一个带有A的列表,一个带有A和B的列表;或者用带有B列表的A和O2列表以及对O1的引用来做O1?或者我应该只在一个可观察对象中放入所有,带有A的列表和带有B的列表?如何使其尊重观察者模式?

1 个答案:

答案 0 :(得分:0)

  

我应该如何实现它来做2个带有A和B列表的可观察对象,带有A和O2列表的O1,带有B列表和对O1的引用,或者我应该把所有,在一个可观察的列表中列出A和列表B,

如果A和B是您的观察者,则该模式允许O1和O2具有Observer的列表(模式中UML中的菱形所示的聚合)。 Observer接口是A和B的一种伪装.O1和O2将它们视为相同类型(Observer)而不是A和B.由于所有Observers都实现了notify()方法,因此O1和O2总是可以在引用类型为Observer的对象上调用它。

这是一个Observer模式图,其中包含您建议的类:

Observer pattern