1

我有一个容器面板。在容器中,我没有其他面板。用户可以更改任何面板中的信息。当面板更改时,所有其他容器都应更新并刷新它们呈现的信息。

在正常情况下,观察者模式有一个主题和一群观察者。在这种情况下,观察者也是主体。

这是设计模式可以解决的问题吗?我应该如何以良好的 OOP 风格构建这些对象之间的交互?

4

4 回答 4

3

http://en.wikipedia.org/wiki/Mediator_pattern在这里可能有用。

于 2012-05-10T22:22:46.340 回答
1

听起来更像是发布/订阅模式而不是观察者模式。

  • 小组 A、B 和 C 订阅主题 X。
  • 面板 B 在收到手动处理的主题 X 时生成主题 Z
于 2012-05-11T05:35:56.030 回答
0

您可以通过将其设置为多对多来调整观察者模式的想法。唯一的区别是观察者需要知道什么主题改变了状态,而不是任何主题改变了状态。

于 2012-05-10T19:18:59.330 回答
0

假设您有一个容器类实例 C1 和 Observer 类实例 ob1、ob2、ob3,它们都在观察 Subject 类实例 s1。当 ob1 上发生事件时,您可以触发类 S1 中的事件并确保 S1 中的事件处理函数通知观察者 ob1、ob2、ob3

希望这可以帮助。如果有请告诉我:)

谢谢!

于 2012-05-11T08:54:08.873 回答