观察者模式是建立一对多关系还是多对多关系?观察者模式中的关系
我发现许多资源,其中由观察者模式建模的关系是一对多的。这是非常有意义的,但是也不可能建立多对多关系的模型,并不意味着它的一般关系是n:m?
这是关于观察者模式建模关系的一般问题,而不是关于如何将观察者添加为其他观察者的观察者。
观察者模式是建立一对多关系还是多对多关系?观察者模式中的关系
我发现许多资源,其中由观察者模式建模的关系是一对多的。这是非常有意义的,但是也不可能建立多对多关系的模型,并不意味着它的一般关系是n:m?
这是关于观察者模式建模关系的一般问题,而不是关于如何将观察者添加为其他观察者的观察者。
一个观察对象可能有许多对象正在注册并等待从观察者处通知。如你所知,这是一对一的。我不确定要如何做到这么多?当然,你可以有相同的观察者订阅其他可观察的对象,但是这并不能使这种模式对许多恕我直言。
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);
你只是执行不适用观察者模式在这里。
对,我和你在一起。实际上,一位教授告诉我们这是多对多的,但对此有相同的看法。 –
要正式地回答你的问题:
http://sourcemaking.com/design_patterns/observer - 定义对象间的一种一对多的依赖关系,当一个对象改变状态,其所有家属得到通知并自动更新。
我会结合迭代器模式并迭代多个观察者。
对我来说,保持观察者模式是一对多是有意义的。用不同的代码管理你的众多订阅。如果您的主题发生变化,这将更容易管理您的代码。
这不回答我的问题:)我的问题是关于观察者模式的建模关系。这是一个普遍的问题,而不是一个如何实现它的问题。 –
可能重复[可以观察员观察多个observable?](https://stackoverflow.com/questions/4829462/can-an-observer-observe-multiple-observables) –
您的问题将更清楚与我多对多的例子。 – Fuhrmanator