常见设计模式一共有 23 种,分为 3 个类别:
- 创建型设计模式:在创建对象同时隐藏创建逻辑,而不是使用新的操作直 接实例化对象的模式。具体有 5 种设计模式:工厂模式、抽象工厂模式、单例模 式、原型模式、建造者模式。
- 结构型设计模式:通过组合接口和定义组合对象,关注类和对象的组合, 获得新的功能的模式。具体有 7 种设计模式:代理模式、门面模式、装饰器模式、 享元模式、组合模式、适配器模式、桥接模式。
- 行为型设计模式:关注对象之间通信的模式。具体有 11 种设计模式:模 板方法模式、策略模式、责任链模式、迭代器模式、命令模式、状态模式、备忘 录模式、中介者模式、解释器模式、观察者模式、访问者模式。
观察者模式
观察者模式主要有两个角色:主题(subject)和观察者(observer),外加一些接 口(因为要针对接口编程),如抽象主题和抽象观察者。
➢ 一个主题可以绑定或解绑若干观察者,并给观察者统一发送消息(调 用观察者的 update 方法)
➢ 观察者与主题建立关联,并在接收新的消息时进行响应(执行 update 方法)
通用类图
怎样理解观察者模式
比如疫情的联防联控,一个新的防疫政策(主题 subject)出台,各部门(与 主题绑定的各种不同的观察者 observer)会接到通知,并将根据实际情况,执行 不同的 update( ),做出不同的响应。