标签:
定义:定义对象间一种一对多的依赖关系,使得每当一个对象改变状态,则所依赖与他的对象都会得到通知并被自动更新
类图:
代码:
public abstract class Subject { private Vector<Observer> observers = new Vector<Observer>(); public void addObserver(Observer observer){ observers.add(observer); } public void deleteObserver(Observer observer){ observers.remove(observer); } public void notifyObserver(){ for(Observer o:observers){ o.update(); } } }
public class ConcreteSubject extends Subject{ public void doSomething(){ super.notifyObserver(); } }
public interface Observer { public void update(); }
public class ConcreteObserver implements Observer{ public void update(){ } }
优点:
观察者和被观察者之间是抽象耦合
建立一套触发机制
缺点:
运行效率问题
标签:
原文地址:http://blog.csdn.net/renpengddxx/article/details/52138632