设计模式
一、简述
观察者模式又叫发布订阅模式,即通过订阅的方式告诉被观察者,当你状态改变时通知我(观察者)。
二、实现
被观察者的父类:
Subject.java
public class Subject{
private List<Observer> observers = new ArrayList<Observer>();
public void attach(Observer observer){
observers.add(observer);
}
public void NotifyAllObserver(){
for(Observer observer : observers ){
observer.update();
}
}
}
观察者的父类:Observer
public abstract class Observer{
protected Subject subject;
public abstract void update();
}
观察者类:
public ObserverImpl extends Observer{
public ObserverImpl (Subject subject){
this.subject = subject ;
this.subject.
attach();
}
public void update (){
.......
}
}
三、优点
观察者和被观察者是抽象耦合的。当发生改变时向所有的观察者发送通知。
四、缺点
被观察者不知观察者的具体操作,当观察者多时将会耗时久