技术栈

2019-03-03——设计模式 观察者模式

2019-03-03  本文已影响0人  烟雨乱平生

特点

多个对象间存在一对多关系,当一个对象发生改变时,把这种改变通知给其他多个对象,从而影响其他对象的行为。这种模式有时又称作发布-订阅模式、模型-视图模式,它是对象行为型模式。

主要角色

实现

public abstract class Subject {
    protected List<Observer> observers = new ArrayList<>();
    public void addObserver(Observer observer){
        observers.add(observer);
    }
    public void removeObserver(Observer observer){
        observers.remove(observer);
    }
    public void notifyAllObservers(){
        for (Observer observer:observers){
            observer.action();
        }
    }

    public abstract void execute();
}


public class ConcreteSubject extends Subject{
    @Override
    public void execute() {
        System.out.println("执行事件");
        notifyAllObservers();
    }
}


public interface Observer {
    void action();
}


public class ObserverA implements Observer{
    @Override
    public void action() {
        System.out.println("A已收到消息");
    }
}



public class ObserverB implements Observer{
    @Override
    public void action() {
        System.out.println("B已收到消息");
    }
}
上一篇 下一篇

猜你喜欢

热点阅读