首页 > 代码库 > 观察者模式

观察者模式

观察者模式

定义:定义了对象之间的一对多依赖,当主对象改变状态时,它的所有依赖者都会收到通知并自动更新

类型:行为型

类结构图

技术分享

 

实现代码

 

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=http://www.mamicode.com/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);    }}

 松耦合的威力

  当两个对象之间松耦合,它们依然可以交互,但是不太清楚彼此的细节。观察者模式提供了一种对象设计、让主题和观察者之间松耦合。松耦合让我们可以建立更有弹性和灵活的系统。

 

 

 

 

观察者模式