观察者模式

观察者模式

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

类型:行为型

类结构图

 

实现代码

 

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);
    }

}

 松耦合的威力

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

 

 

 

 

posted @ 2016-12-30 15:00  Nreo  阅读(138)  评论(0编辑  收藏  举报