数据结构+算法=程序
程序+设计模式=软件

0%

观察者模式(Observer)

官方定义

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

分类

行为型模式

思想

由主题订阅并维护多个观察者,但主题发生变更,则所有观察者收到通知,并各自维持自己的状态。

UML类图

实现

  1. 主题Subject接口包含三个方法,注册(添加)观察者,删除观察者和通知所有观察者,每个主题可以设置多个观察者;

  2. 所有观察者必须实现观察者Observer接口,这个接口只有一个update方法,当主题内容改变时该方法被调用;

  3. 具体主题ConcreteSubject除了实现主题接口方法外,也可以有自己的方法,比如设置和获取状态;

  4. 具体的观察者ConcreteObserver必须注册具体主题,以便接收更新。