3 观察者模式
观察者模式是leo哥非常喜欢的模式之一,也是分布式系统非常流行的设计思路之一。如Redis的发布订阅,及Zookeeper的事件通知。在本质上都暗含了观察者模式的设计思路。这里先写了一个J2SE本地方法级的观察者模式。后续可通过对分布式开发中基于网络IO调用的观察者模式进行实践。
代码功能:Subject为一个触发事件的客体,代码中有老师、学生、售货员,通过观察”下课”这个事件,来做出相应的反应
Step 1:先定义一个基于事件的观察者的接口,接口内包含发生事件时的动作act
public interface IEventObserver {
public void act(MyEvent eventName);
}
Step 2:定义接受观察和触发事件的客体
public class Subject {
private List<IEventObserver> obList =new LinkedList<>();
public void attach(IEventObserver ob){
obList.add(ob);
}
public void