我有一个容器面板。在容器中,我没有其他面板。用户可以更改任何面板中的信息。当面板更改时,所有其他容器都应更新并刷新它们呈现的信息。
在正常情况下,观察者模式有一个主题和一群观察者。在这种情况下,观察者也是主体。
这是设计模式可以解决的问题吗?我应该如何以良好的 OOP 风格构建这些对象之间的交互?
我有一个容器面板。在容器中,我没有其他面板。用户可以更改任何面板中的信息。当面板更改时,所有其他容器都应更新并刷新它们呈现的信息。
在正常情况下,观察者模式有一个主题和一群观察者。在这种情况下,观察者也是主体。
这是设计模式可以解决的问题吗?我应该如何以良好的 OOP 风格构建这些对象之间的交互?
听起来更像是发布/订阅模式而不是观察者模式。
您可以通过将其设置为多对多来调整观察者模式的想法。唯一的区别是观察者需要知道什么主题改变了状态,而不是任何主题改变了状态。
假设您有一个容器类实例 C1 和 Observer 类实例 ob1、ob2、ob3,它们都在观察 Subject 类实例 s1。当 ob1 上发生事件时,您可以触发类 S1 中的事件并确保 S1 中的事件处理函数通知观察者 ob1、ob2、ob3
希望这可以帮助。如果有请告诉我:)
谢谢!