设计模式之观察者模式
观察者模式(Observer)的定义
观察者模式是对象的行为模式,又叫发布-订阅(Publish/Subscribe)模式、模型-视图(Model/View)模式、源-监听器(Source/Listener)模式或从属者(Dependents)模式。
观察者模式定义了一种一对多的依赖关系,让多个观察者同时监听某一个主题对象。这个主题对象在状态上发生变化时,会通知所有观察者对象,使它们能够自动更新自己。
Java 观察者模式 示例
public interface Observer {
public void doUpdate(String message);
}
public class MyObjserver1 implements Observer {
@Override
public void doUpdate(String message) {
LogHelper.log("MyObjserver1 收到了一条消息 :" + message);
}
}
public class MyObjserver2 implements Observer {
@Override
public void doUpdate(String message) {
LogHelper.log("MyObjserver2 收到了一条消息 :" + message);
}
}
public class Subject {
private List<Observer> list = new ArrayList<Observer>();
public void addServer(Observer observer)
{
list.add(observer);
}
public void notifyAllObservers(String message)
{
for(Observer observer : list)
{
observer.doUpdate(message);
}
}
public static void main(String[] args)
{
Subject subject = new Subject();
subject.addServer(new MyObjserver1());
subject.addServer(new MyObjserver2());
subject.notifyAllObservers("微信又加了一条规则, 结果公众号封了好多。。。");
}
}
运行结果
【www.pangugle.com】- MyObjserver1 收到了一条消息 :微信又加了一条规则, 结果公众号封了好多。。。
【www.pangugle.com】- MyObjserver2 收到了一条消息 :微信又加了一条规则, 结果公众号封了好多。。。