观察者模式是如何降低耦合的?

How does the Observer pattern reduce coupling?

我了解观察者模式的工作原理,但为什么观察者模式降低了软件设计中UI与业务逻辑组件之间的耦合?

The Observer pattern 减少了参与者之间的耦合,因为它在 Subject 和它的 Observers 之间引入了一个抽象类型 Observer。

想象一个模型(Four/Wikipedia 描述组中的主题,以及业务逻辑的主页)和一个视图(观察者)。如果没有观察者,模型将需要在视图发生变化时调用视图上的方法。模型会知道 View 的具体 class 并耦合到它,以及视图所属的任何 UI 特定框架。

有了Observer,Model只知道类型(抽象class或接口)Observer,所以它不耦合到具体的View。