1 观察者模式定义了一对多的依赖关系,让多个观察者对象同时监听某一个主题对象,这个主题对象在变化时,会通知所有的观测者对象,使他们能自动更细自己。具体代码如下:
观测者抽象类:
public abstract class Observer {
protected String name;
protected Subject subject;
public Observer(String name, Subject subject) {
this.name = name;
this.subject = subject;
}
public abstract void update();
}
两个实现类:
public class StockObserver extends Observer{
public StockObserver(String name, Subject subject) {
super(name, subject);
}
@Override
public void update() {
// TODO Auto-generated method stub
System.out.println(name+"关闭炒股软件,继续工作。。。");
}
}
public class NBASObserver extends Observer{
public NBASObserver(String name, Subject subject) {
super(name, subject);
// TODO Auto-generated constructor stub
}
@Override
public void update() {
// TODO Auto-generated method stub
System.out.println("关闭NBA直播,继续工作。。。");
}
}
通知者接口
public class Subject {
public List<Observer> lstObserver=new ArrayList<Observer>();
public void add(Observer observer){
this.lstObserver.add(observer);
}
public void remind(){
for (Observer observer : this.lstObserver) {
observer.update();
}
}
}
看观察者模式看得头有点懵逼,据说好像是Spring依赖倒转的原理,未完待续。。。
参考书籍《大话设计模式》