【问题标题】:The observer pattern is two modules or is one module?观察者模式是两个模块还是一个模块?
【发布时间】:2017-12-07 14:22:19
【问题描述】:

我们可以说观察者模式是两个模块(可能取决于上下文)?

认为:Subject 是另一个模块 Observer 另一个模块(它们彼此相关。好吧,我们从模式中知道这一点)。

【问题讨论】:

    标签: design-patterns module ooad


    【解决方案1】:

    观察者模式既可以是一个模块,也可以是两个模块。不是那么具体。但是当两个关联的类位于不同的模块或子系统中时,观察者模式最有用。此外,它用于减少类之间的互连,让对象在不知道其他对象的类的情况下相互通信。

    根据我的猜测,您可能已经研究过这张图片。在这里,Subject 和 Observer 是两个不同的类或模块。 Observer 主要是抽象类,ConcreteObserverA 和 ConcreteObserverB 实现 Observer 类的方法 notify() 来通知各自的观察者。同样,Subject 类可以处理类似于图中所示的方法。主题类通常包含通知观察者的信息。

    这样就可以拆分模块了。

    此外,您可以从 Timothy C.Lethbridge 和 Robert Lagniere 所著的“面向对象软件工程”一书中了解更多关于观察者模式的信息。

    【讨论】:

    • 我也觉得这样有一个观察者模式就是两个模块可以说是(嗯,不管上下文)?模式的精髓观察者就在这句话上“当两个关联的类在不同的模块或子系统中时,观察者模式最有用”。
    • 嗯,设计原则通常会有所不同,但如果您需要具体并给出具体的答案而不是肯定的,那么说“观察者模式用于两个模块”是正确的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-23
    • 2019-11-19
    相关资源
    最近更新 更多