美文网首页
观察者模式

观察者模式

作者: MrWu_ | 来源:发表于2017-05-03 20:36 被阅读5次

    出版者+订阅者=观察者模式

    观察者模式定义了对象之间的一对多依赖,这样一来,当一个对象改变状态时,它的所有依赖者都会收到通知并通知更新。

    主题和观察者定义了一对多的关系,观察者依赖于此主题,只要主题状态一有变化,观察者就会被通知。

    设计原则:为了交互对象之间的松耦合设计而努力。

    • Subject:目标

    • ConcreteSubject:具体目标

    • Object:观察者

    • ConcreteObject:具体观察者

    
    public interface Subject{
    
    //这两个方法都需要一个观察者作为变量,该观察者是用来注册或被删除的
    
    public void registerObserver(Observer o);
    
    public void removeObject(Observer o);
    
    //当主题状态改变时,这个方法会被调用,以通知所有的观察者
    
    public void notifyObject(Observer o);
    
    }
    
    public interface Observer{
    
    public void uddate(float temp,float humidity,float pressure);
    
    }
    
    public interface DiaplayElement{
    
    public void display();
    
    }
    
    //在WeatherData中实现主题接口
    
    public class WeatherData implements Subject{
    
    private ArrayList observers;
    
    private float temperature;
    
    private float humidity;
    
    private float pressure;
    
    public WeatherData(){
    
    observers=new ArrayList();l
    
    }
    
    //当注册观察者时,我们只要把它加到ArrayList的后面即可
    
    public void registerObserver(Observer o){
    
    observers.add(o);
    
    }
    
    public void removeObserver(Observer 0){
    
    int i=observers.indexOf(o);
    
    if(i>=0){
    
    observers.remove(i);
    
    }
    
    }
    
    public void notifyObservers(){
    
    for(int i=0;i

    相关文章

      网友评论

          本文标题:观察者模式

          本文链接:https://www.haomeiwen.com/subject/mgjltxtx.html