应该有观察者集合



在观察者模式中,即使我只需要一个Observer,Subject应该有Observers的集合吗?我使用观察者模式看到的每个图或应用程序都有许多Observer。如果它只有一个Observer,它被称为观察者模式吗?

来自GoF书第295页,

任意数量的观察者对象都可以观察一个主体。

这就是为什么你在每个例子中都看到一个观察者的集合。一个主题支持一个以上;但是,不需要有多个。">任意数量"包括数字1

很好。像在MVC中一样,表示层/应用程序facade层中的对象可能是唯一侦听特定域对象的对象。

记住Subject和Observer的说明——这里没有提到集合。Observer有一个update()方法,Subject有一个register()方法。就是这样!集合是一个实现细节。:)