【问题标题】:should subject have collection of observers主体应该有观察者的集合
【发布时间】:2021-10-21 10:46:18
【问题描述】:

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

【问题讨论】:

    标签: design-patterns observer-pattern


    【解决方案1】:

    来自 GoF 书籍第 295 页,

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

    这就是为什么您会在每个示例中看到一组观察者。一个主题支持多个;但是,它不需要超过一个。 “任何数字”包括数字 1。

    【讨论】:

      【解决方案2】:

      是的,完全没问题。就像在 MVC 中一样,表示层/应用程序外观层中的对象可能是唯一侦听特定域对象的对象。

      请记住主题和观察者的规范 - 那里没有提到集合。 Observer 有一个 update() 方法,Subject 有一个 register() 方法。而已!集合是一个实现细节。 :)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-09-25
        • 2018-08-09
        • 2019-08-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-08-26
        相关资源
        最近更新 更多