观察者设计模式

2019-03-13  本文已影响0人  xuxhing

一、模式定义

定义对象间的一种一对多的关系,当一个对象的状态发生改变时,所依赖于它的对象都得到通知并被自动更新。

二、模式类图

观察者模式.png

三、示例代码

public interface Observer {
    public void update(Subject subject);
}
public interface Subject {

    public void attach(Observer observer);

    public void detach(Observer observer);

    public void notifyObservers();
}
public class ConcreteSubject implements Subejct {

    private List<Observer> observers = new ArrayList<Observer>();

    public void attach(Observer observer) {
        this.observers.add(observer);
    }

    public void detach(Observer observer) {
        this.observers.remove(observer);
    }

    protected void notifyObservers() {
        for (Observer observer : this.observers) {
            observer.update(this);
        }
    }
}
public class Publisher extends Subject {

    private String state;

    public String getState() {
        return this.state;
    }

    public void setState(String state) {
        this.state = state;
        this.notifyObservers();
    }
}

四、何时选用

上一篇下一篇

猜你喜欢

热点阅读