观察者模式
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了观察者模式相关的知识,希望对你有一定的参考价值。
观察者模式
定义:定义了对象之间的一对多依赖,当主对象改变状态时,它的所有依赖者都会收到通知并自动更新
类型:行为型
类结构图
实现代码
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); } }
松耦合的威力
当两个对象之间松耦合,它们依然可以交互,但是不太清楚彼此的细节。观察者模式提供了一种对象设计、让主题和观察者之间松耦合。松耦合让我们可以建立更有弹性和灵活的系统。
以上是关于观察者模式的主要内容,如果未能解决你的问题,请参考以下文章
Java设计模式补充:回调模式事件监听器模式观察者模式(转)