设计模式-观察者模式(发布订阅)

28 阅读1分钟

观察者模式是在被观察者状态改变的时候被动的被唤醒进行相应的处理

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

public class MikeObserver  {

    private final List<Mike> observerList = new ArrayList<Mike>();


    public void addObserverList(Mike mike) {
        this.observerList.add(mike);
    }

    public void removeObserverList(Mike mike) {
        this.observerList.remove(mike);
    }

    public void update(int num) {
        observerList.forEach(i->{
            i.addSugar(num);
        });
    }


    public static void main(String[] args) {
        MikeObserver mikeObserver = new MikeObserver();
        mikeObserver.addObserverList(new AppleMike());
        mikeObserver.addObserverList(new PearMike());
        mikeObserver.update(1000);
    }

}
public interface Mike {

     void addSugar(int num);

}
public class AppleMike implements Mike {
    @Override
    public void addSugar(int num) {
        System.out.println("AppleMike现在糖量改为" + num);
    }
}
public class PearMike implements Mike{
    @Override
    public void addSugar(int num) {
        System.out.println("PearMike现在糖量改为" + num);
    }
}