观察者模式(Observe Pattern)
观察者模式:
当对象存在一对多关系时,使用观察者模式(Observe Pattern)。例如:当一个对象被修改时,会通知它的依赖对象。
介绍:
1、意图:定义对象的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。
2、主要解决:一个对象状态改变给其他对象通知的问题,而且要考虑到易用和低耦合,保证高度的写作。
3、合适使用:一个对象(目标对象)的状态发生改变,所有的依赖对象(观察对象)都将得到通知,进行广播通知。
4、如何解决:在抽象类中有一个ArrayList存放观察者们。
6、优点:a、观察者和被观察者是抽象耦合的。2、建立一套触发机制。
7、缺点:a、如果一个被观察者对象有很多的直接和间接的观察者的话,将所有的观察者都通知到会花费很长试讲。b、如果在观察者和观察目标之间有循环依赖的话,观察目标会触发他们之间进行循环调用,可能导致系统崩溃。c、观察模式没有相应的机制让观察者知道所观察的目标对象是怎样发生变化的,而仅仅只是知道观察目标发生了变化。
实现: