标签:his hash 状态 ide ace abstract 交互 code 分享
观察者模式
定义:定义了对象之间的一对多依赖,当主对象改变状态时,它的所有依赖者都会收到通知并自动更新
类型:行为型
类结构图
实现代码
public class Subject { private int data; private boolean isChange; private Set<Observer> observers=new HashSet<Observer>(); public void register(Observer obj){ observers.add(obj); } public void remove(Observer obj){ observers.remove(obj); } public void notifyAlls(){ if(isChange){ for(Observer ob:observers){ ob.call(data); } isChange=false; } } public void setData(int data){ if(data!=this.data)isChange=true; this.data=data; } } public interface Observer { public abstract void call(int data); } public class Jack implements Observer{ @Override public void call(int data) { System.out.println("Jack:"+data); } } public class Rusy implements Observer{ @Override public void call(int data) { System.out.println("Rusy:"+data); } }
松耦合的威力
当两个对象之间松耦合,它们依然可以交互,但是不太清楚彼此的细节。观察者模式提供了一种对象设计、让主题和观察者之间松耦合。松耦合让我们可以建立更有弹性和灵活的系统。
标签:his hash 状态 ide ace abstract 交互 code 分享
原文地址:http://www.cnblogs.com/yzjSince92/p/6236979.html