接上篇,本篇将会介绍C++设计模式中的Observer 观察者模式,和前2篇模板方法Template Method
及Strategy 策略模式
一样,仍属于“组件协作”模式。Observer 在某些领域也叫做 Event
。
文章目录
1. 动机( Motivation)
- 在软件构建过程中,我们需要为某些对象建立一种
“通知依赖关系”
——一个对象(目标对象
)的状态发生改变,所有的依赖对象(观察者对象
)都将得到通知。如果这样的依赖关系过于紧密,将使软件不能很好地抵御变化。 - 使用面向对象技术,可以将这种依赖关系弱化,并形成一种稳定的依赖关系。从而实现软件体系结构的松耦合。
2. 代码演示Observer 观察者模式
假设以下的场景需求:做一个文件的分割器。虽然现在文件分割器使用的比较少,但是在之前是使用很广泛的,因为当时还是一个3寸盘的时代,经常需要将大文件拷走,就需要将大的文件分隔为多个文件拷贝携带走。
下面是一个伪码,只会展示主干部分。<