也叫 事件模式,
事件触发。
场景中二者的联系(意味着可能产生耦合)是:通知。
所以要对这块进行设计模式运用。
依赖倒置中的
依赖
我们指的是编译依赖。
A依赖B,则表示编译A模块,B模块必须已经实现完成。
所以我们要做到依赖接口(虚函数),而不是依赖具体的实现、实现细节(子类)。
多继承:
好的C++代码,不建议集成多个类或者多层继承,
但,建议 继承一个主体类,其他是接口类,
该方式是可以的。
添加删除观察者。
删除观察者,时间复杂度要考虑。list删除复杂度O(1)。
1.将观察者或目标进一步抽象各自的基类,
这样, 二者的树木可以独立的改变,互不影响,达到松耦合。
(把本来相互影响/event的事件,这样做实现了解耦合)
2.目标对象,不需要制定观察者进行通知,会自动传播
3.目标不知道订阅者的去留,有多少也不知道。