观察者模式
定义:定义对象间一种一对多的依赖关系,使得当每一个对象改变状态,则所有依赖于它的对象都会得到通知并自动更新。
类图:
多个[观察者]观察[被观察者]的状态,当[被观察者]的状态发生改变时,[观察者】自己的状态也随着发生变化。
被观察者有三个方法:attach方法是向这个容器中添加观察者对象;detach方法是从容器中移除观察者对象;notify方法是依次调用观察者对象的对应方法。
观察者模式是一种常用的触发机制,它形成一条触发链,依次对各个观察者的方法进行处理。
这里有一个好处是,被观察者不需要知道观察者的内容和有多少个观察者,只是在自己状态发生变化的时候通知订阅自己的观察者
补充:vector和list的区别
vector相当于数据结构中的顺序表,在物理地址上是连续的,查询速度快,可以直接下标索引,但是在删除插入数据的时候,后面的所有数据都要移动,效率较低
list是双向链表,物理地址不连续,必须从头或尾查询,速度慢,但是可以动态的插入删除数据