在观察者模式中,需要有被观察的对象,观察者。当被观察的对象发生改变时会通知观察者做对应的改变。
观察者模式定义了一种一对多的依赖关系,让多个观察者同时监听某一个主题对象。这个主题对象在发生改变时会通知所有观察者对象,使它们能够自动更新自己。
观察者模式-来自大话设计模式
/**
* 可观察者
* @author donghe
*
*/
public interface Observerable {
public void registerObserver(Observer o);
public void removeObserver(Observer o);
public void notifyObserver();
}
/**
* 可观察者实现
* @author donghe
*
*/
public class QQServer implements Observerable{
List<Observer> list;
@Override
public void registerObserver(Observer o) {
list.add(o);
}
@Override
public void removeObserver(Observer o) {
list.remove(o);
}
@Override
public void notifyObserver() {
for(Observer observer :list){
observer.update("收到qq消息");
}
}
/**
* 从服务器接收到消息
*/
public void reciveMessage(){
notifyObserver();
}
}
/**
* 观察者
* @author donghe
*
*/
public interface Observer {
public void update(String message);
}
/**
* 观察者实现
* @author donghe
*
*/
public class User implements Observer{
private String name;
private String message;
@Override
public void update(String message) {
this.message = message;
}
}