观察者模式

2018-08-30  本文已影响0人  kindol

概述

观察者模式可以简单地理解为发布订阅模式,比如公众号,大白话就是用户是观察者,而公众号是被观察者,当公众号有新更新的时候用户就会察觉并获得信息,实现了一对多的消息发布;本质上描述的是对象之间的一对多的依赖关系,当一个对象状态改变,依赖它的对象将会收到通知

包含的角色

举个栗子

public interface Observerable{
    void registerObserver(Observer o);
    void removeObserver(Observer o);
    void notifyObserver();
}
public interface Observer{
    void update(String message);
}
public class Server implements Observerable{
    private List<Observer> observerList;
    private String message;
    
    public Server(){
        this.observerList = new ArrayList<Observer>();
    }
    
    @Override
    public void registerObserver(Observer o){
        this.observerList.add(o);
    }
    @Override
    public void removeObserver(Observer o){
        this.observerList.remove(o);
    }
    @Override
    public void notifyObserver(){
        for (Observer o: observerList)
            o.update(message);       
    }
}
public class User implements Observer{
    @Override
    public void update(String message){
        System.out.println(message);
    }
}

观察者模式与发布订阅模式的区别

前面概述说了可以简单理解为发布订阅模式,但其实此二者是有区别的,发布订阅模式是一种消息传递的模式,事实上,

上一篇 下一篇

猜你喜欢

热点阅读