设计模式的分类
我们都知道有 23 种设计模式,这 23 种设计模式可分为如下三类:
- 创建型模式(5 种):单例模式、工厂方法模式、抽象工厂模式、建造者模式、原型模式。
- 结构型模式(7 种):适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。
- 行为型模式(11 种):策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。
设计模式系列文章传送门
什么是观察者模式
观察者模式是一种典型的发布订阅模式,定义了对象间的一种一对多的依赖关系,只要一个对象的状态发生改变,其依赖的所有相关对象都会得到通知并做出想要,是一种行为型模式。
观察者模式的组成
- 抽象被观察者:也叫主题,定义了一个接口,接口中提供了注册观察者、删除观察者、通知观察者方法。
- 具体被观察着:也叫具体主题,实现了抽象被观察者接口,重写了其方法,并维护了一个观察者列表,当被观察者状态发生变化的时候,通知观察者列表中的所有观察者。
- 抽象观察者:也叫订阅者,定义了一个接口,并在接口中定义了一个更新的方法。
- 具体观察着:也叫具体订阅者,实现了抽象观察者接口,并实现具体的更新方法,也就是自己的业务逻辑。
抽象者模式案例演示
我们使用生活中的微信公众号信息推送来演示观察者模式,当我们订阅了某个微信公众号之后,公众号更新了内容的时候会给我们推送消息,这里公众号就是被观察者(主题),用户就是观察者(订阅者)。
Subscriber(抽象观察者)
Subscriber 抽象观察者定义了一个更新的接口,具体代码如下:
public interface Subscriber