引言
松耦合设计是指对象之间较为独立,可以交互,但是不清楚彼此的细节,与之等效的说法是高内聚低耦合,对象与对象之间的互相依赖性很低,这样可以使构建的OO系统更有弹性,因此使系统更能适应变化。
观察者模式
观察者模式是松耦合设计的一个具体表现形式,它定义了对象之间的一对多依赖,一指的是被观察者,多指的是观察者,这样当被观察的一个对象改变状态时,它所有的依赖者都会受到通知并自动更新。MVC是观察者模式的典型代表。
具体实现
此处我是用C++代码实现了Head First Design Patterns一书中的气象站,其UML图如下所示,
C++代码具体实现可参考以下github,开发环境为 Win10 & VS2015。
https://github.com/yazhouzheng/DesignPattens/tree/master/ObserverPattern/ObserverPattern
模式所用设计原则
为交互对象之间的松耦合设计而努力
总结
本文简要介绍了观察者模式以及其中使用到的低耦合原则,并使用C++重新实现了书中气象站的观察者模式实现。C++虽然是一种OO语言,但是其并没有内置的观察者模式吗,因此我这里没有实现书中的内置实现以及使用pull的方式传送数据。