观察者模式

1.定义#

定义对象间一种一对多的依赖关系,使得每当一个对象改变状态,则所有依赖于它的对象都会得到通知并被更新。观察者模式是存在观察者和被观察者,当被观察者状态改变时将通知观察者做出响应。JAVA中已提供实现类Observable和接口Observer。

2.类图#

观察者模式_第1张图片
类图

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.优缺点#

优点:观察者与被观察者之间解耦合,不管增加观察者还是被观察者都非常容易。建立了一套出发机制,可以方便的形成多条触发链。
缺点:当触发链过多是将难以维护,如多个被观察者同时发送消息则观察者处理压力将会很大,考虑使用多进程和缓存机制实现。

你可能感兴趣的:(观察者模式)