观察者模式:在软件构建过程中,需要为某些对象建立一种“通知依赖关系”——目标对象状态发生变化时候,所有依赖对象(观察者)都自动被通知。但是如果“通知依赖关系”过于紧密,那么软件不能很好抵御变化。
观察者模式主要解决的问题有俩点:
1、当目标对象发生变化时,所有的观察者自动被通知。其实这里主要借助STL容器,将所有观察者都注册到容器,目标对象发生变化时候,一次遍历容器中的观察者使他们发生自己的动作。
2、解决“通知依赖关系”紧耦合变成松耦合,实现设计者模式的第一个原则:依赖倒置原则(高模块不依赖低模块,高模块和地模块都依赖抽象,抽象不依赖细节,细节依赖抽象)
接下通过代码来观察:我们通过文件分割器来举例,现有需求要在界面展示文件分割的进度。