import java.util.ArrayList; public class SubjectImpl implements Subject{//主题是一个接口用于绑定观察者,解绑观察者以及通知 ArrayList<Observer> observers = new ArrayList<Observer>(); //用于保存观察者Observer是一个接口定义观察者要实现的方法 //绑定观察者 @Override public void registerObserver(Observer o) { observers.add(o); } //解绑观察者 @Override public void removeObserver(Observer o) { observers.remove(o); } //通知观察者 @Override public void notifyObserver() { for(Observer o :observers){ o.change(); } } }
观察者设计模式实现了两个对象间的解耦。主题和观察者都只需要根据自己的接口规范进行编程即可。