知识卡片
观察者模式的优缺点
内容
[[观察者模式的定义与四个角色]]的优点:观察者和被观察者是抽象耦合;能建立触发机制把单一 职责的类串联成连锁反应。缺点是效率和复杂度——多个观察者增加调试复杂度,Java默认顺序 同步执行,一个观察者卡壳会拖慢整体响应。发散:这是观察者模式典型的”解耦换效率”取舍—— 它解决的是依赖关系复杂度,不是运行时性能问题。
参考来源
- 位置:《设计模式之禅(第2版)》第22章《观察者模式》(源文件:_epub-src/text/part0101.html)
- 结论依据:原文说明观察者模式优点(抽象耦合、建立触发机制串联单一职责的类),并指出缺点"一个被观察者,多个观察者,开发和调试就会比较复杂,而且在Java中消息的通知默认是顺序执行,一个观察者卡壳,会影响整体的执行效率"。
- 原始内容:观察者和被观察者之间是抽象耦合……根据单一职责原则,每个类的职责是单一的,那么怎么把各个单一的职责串联成真实世界的复杂的逻辑关系呢?……观察者模式需要考虑一下开发效率和运行效率问题……一个观察者卡壳,会影响整体的执行效率。