将 IObserver 分配给多个 IObservable 实例

Assign IObserver to multiple IObservable instances

Although it is possible to attach an observer to multiple providers, the recommended pattern is to attach an IObserver instance to only one IObservable instance.

取自Observer Design Pattern Best Practices

我看不出有任何明显的理由建议将观察者仅分配给一个可观察对象。事实上,我想这样做是为了不断刷新依赖于多个变化值的统计数据。

在我看来,msdn 建议我为我想观察的每个值创建一个专用观察者的实例-class,而我的直觉是让我的统计数据 class 直接分配给 IObservables。

实现这个的 "proper" 方法是什么?为什么我不应该将我的 class 分配给多个 observables?

据我所知,这没有充分的理由 "best practice"。

我只能看到您可能想要执行此操作的一种情况,但这肯定不构成将此称为 "best practice" 的理由。

假设您需要知道发出通知的 observable 是谁,并且假设 observable 没有通过 OnNext()value 参数来标识自己。然后,您必须为每个可观察对象实例化一个不同的观察者,并将可观察对象作为构造函数参数传递给观察者 (*1)。

在您的情况下,您不需要知道发出通知的 observable 是谁,因此这种情况不适用于您。

(*1) 事实上,正是为了避免实例化不必要的观察者,许多框架要求任何通知都应包含对通知发起者的引用。