百度工程师教你玩转设计模式(观察者模式)
要写好代码,设计模式(Design Pattern)是必不可少的基本功,设计模式是对面向对象设计(Object Oriented Design)中反复出现的问题的一种有效解决方案,本次从比较常见的观察者模式入手(Observer Pattern)。在观察者模式中,存在多个观察者对象依赖(Observer)都依赖同一个目标对象(Subject),当被依赖的目标对象发生变化的时候,会通知所有依赖它的观察者对象,然后各个观察者对象根据自己的需要做出对应的响应。 其主要优点如下: 降低了目标与观察者之间的耦合关系 建立了目标与观察者之间的变化触发机制 其主要缺点如下: 目标与观察者之间的依赖关系并没有完全解除,而且有可能出现循环引用 当观察者对象很多时,通知的发布会花费很多时间,影响程序的效率 比较抽象不好理解?我们来参考日常功能设计中几个常见的场景。 01观察者模式在天气预报场景的应用 关注天气预报是我们日常生活中一个比较重要的习惯,不同的角色对于天气的变化由有着不同的反应。例如明天特大暴雨,气象部门考虑的是评估并发布合理的政策指导,教育部门需要评估是否需要停课,应急部门考虑的是如何提前准备...