1.1.1 描述
l 正规描述
观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态上发生变化时,会通知所有观察者对象,使他们能够自动更新自己。
l 形象描述
想知道咱们公司最新MM情报吗?加入公司的MM情报邮件组就行了,tom负责搜集情报,他发现的新情报不用一个一个通知我们,直接发布给邮件组,我们作为订阅者(观察者)就可以及时收到情报啦。
1.1.2 类图&示意代码
public interface Subject(){ addObserver(Observer observer); deleteObserver(int index); notifyObservers(); }
public interface Observer(){ Operation1(); }
public class ConcreteSubject implements Subject(){ private List<Observer> observerList = new ArrayList();
public void addObserver(Observer observer){ observerList.add(observer); }
public void deleteObserver(int index){ observerList.remove(index); }
public void notifyObservers(){ int i=0; int size = observerList.size(); for(;i<size;i++){ observerList.get(i).Operation1(); } } }
public class ConcreteObserver implements Observer(){ public void Operation1(){ //to do } } |