【发布时间】:2011-06-24 14:06:06
【问题描述】:
据我了解,观察者模式允许多个观察者监控一个主题。是否有相反情况的模式?是否有一个观察者模式可以监控多个主题并在其中任何一个引发(例如,通知事件)时做出响应?
【问题讨论】:
-
这就像只有一个观察者和多个观察者。所以所有的 Observable 都会在其状态发生变化时更新单个 Observer,而 Observer 仍然可以在调用其 update(Observable o, Object arg) 时区分不同的 Observable。
-
我觉得这里唯一的变化是Observer应该在运行时动态注册到新的Observable。意思是当新的Observable启动时;然后必须将其传达给 Observer 以进行注册。另一种方式是当新的观察者出现时;这个 Observer 对象总是在其构造函数中使用 Observable 构建的。所以像 Observable 构造函数之类的东西应该在它被启动时接受单个 Observer。
标签: oop design-patterns observer-pattern