码迷,mamicode.com
首页 > 其他好文 > 详细

观察者模式

时间:2016-12-30 15:37:14      阅读:202      评论:0      收藏:0      [点我收藏+]

标签: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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!