1.定义#
定义对象间一种一对多的依赖关系,使得每当一个对象改变状态,则所有依赖于它的对象都会得到通知并被更新。观察者模式是存在观察者和被观察者,当被观察者状态改变时将通知观察者做出响应。JAVA中已提供实现类Observable和接口Observer。
2.类图#
3.实现#
3.1被观察者##
public class ConcreteObservalbe extends Observalbe{
public class doSomething(){
//发送相应变更
super.setChanged();
super.notifyObservers(object);
}
}
3.2观察者##
public class ConcreteObserver implements Observer{
public void update(Observable observable,Object obj){
//相应的处理逻辑
}
}
4.优缺点#
优点:观察者与被观察者之间解耦合,不管增加观察者还是被观察者都非常容易。建立了一套出发机制,可以方便的形成多条触发链。
缺点:当触发链过多是将难以维护,如多个被观察者同时发送消息则观察者处理压力将会很大,考虑使用多进程和缓存机制实现。