1.1 简介
1.1.1 概述
观察者(Observer)模式的定义:指多个对象间存在一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。这种模式有时又称作发布-订阅模式、模型-视图模式。在现实世界中,许多对象并不是独立存在的,其中一个对象的行为发生改变可能会导致一个或者多个其他对象的行为也发生改变。例如,当我们开车到交叉路口时,遇到红灯会停,遇到绿灯会行。
1.1.2 优缺点
优点: ① 降低了目标与观察者之间的耦合关系,两者之间是抽象耦合关系。符合依赖倒置原则。 ② 目标与观察者之间建立了一套触发机制。
缺点: ① 目标与观察者之间的依赖关系并没有完全解除,而且有可能出现循环引用。 ② 当观察者对象很多时,通知的发布会花费很多时间,影响程序的效率。
1.2 案例
小米11的发布会可以说是多方关注,雷布斯在发布会上给小米11定价 3999,有充电器和没有充电器一个价,这波操作对于苹果来说伤害不大侮辱性极强,对于友商来说如何定价很头疼,对于米粉来说买买买。这跟观察者模式很类似,目标动态发生变化时,观察者本身根据目标的变化而进行相应的操作。下图就是观察者模式的结果图。