设计模式之观察者模式

观察者模式(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 收到了一条消息 :微信又加了一条规则, 结果公众号封了好多。。。