观察者模式中的关系
Relationship in Observer Pattern
观察者模式是建立一对多关系还是多对多关系?
我发现许多资源中观察者模式建模的关系是一对多的。这是完全有道理的,但是否也可以对多对多关系进行建模,这是否意味着它的一般关系是 n:m?
这是一个关于观察者模式建模的关系的一般性问题,而不是关于如何将可观察者作为观察者添加到其他可观察者的问题。
正式回答你的问题:
http://sourcemaking.com/design_patterns/observer - 定义对象之间的一对多依赖关系,这样当一个对象改变状态时,它的所有依赖对象都会收到通知并自动更新。
我会结合迭代器模式并迭代多个观察者。
对我来说,让观察者模式保持一对多是有意义的。在不同的代码段中管理您的大量订阅。如果您的主题发生变化,这将使您更容易管理代码。
一个观察对象可以有多个对象正在注册并等待观察者通知。如您所知,这是一对多。我不太确定如何让这个多对多?当然,您可以让相同的观察者订阅其他可观察对象,但这并不会使这种模式成为多对多恕我直言。
Observable1.Subscribe(observer1);
Observable1.Subscribe(observer2);
Observable1.Subscribe(observer3);
Observable2.Subscribe(observer1);
Observable2.Subscribe(observer2);
Observable2.Subscribe(observer3);
...
ObservableN.Subscribe(observer1);
ObservableN.Subscribe(observer2);
ObservableN.Subscribe(observerN);
您刚刚在这里实现了 N 个观察者模式。
观察者模式是建立一对多关系还是多对多关系?
我发现许多资源中观察者模式建模的关系是一对多的。这是完全有道理的,但是否也可以对多对多关系进行建模,这是否意味着它的一般关系是 n:m?
这是一个关于观察者模式建模的关系的一般性问题,而不是关于如何将可观察者作为观察者添加到其他可观察者的问题。
正式回答你的问题:
http://sourcemaking.com/design_patterns/observer - 定义对象之间的一对多依赖关系,这样当一个对象改变状态时,它的所有依赖对象都会收到通知并自动更新。
我会结合迭代器模式并迭代多个观察者。
对我来说,让观察者模式保持一对多是有意义的。在不同的代码段中管理您的大量订阅。如果您的主题发生变化,这将使您更容易管理代码。
一个观察对象可以有多个对象正在注册并等待观察者通知。如您所知,这是一对多。我不太确定如何让这个多对多?当然,您可以让相同的观察者订阅其他可观察对象,但这并不会使这种模式成为多对多恕我直言。
Observable1.Subscribe(observer1);
Observable1.Subscribe(observer2);
Observable1.Subscribe(observer3);
Observable2.Subscribe(observer1);
Observable2.Subscribe(observer2);
Observable2.Subscribe(observer3);
...
ObservableN.Subscribe(observer1);
ObservableN.Subscribe(observer2);
ObservableN.Subscribe(observerN);
您刚刚在这里实现了 N 个观察者模式。