知识卡片

从轮询监控演化到观察者模式的三个阶段

普通读书笔记卡 · 1872.b.1

内容

“李斯监控韩非子”案例展示发现[[观察者模式的定义与四个角色]]必要性的三阶段:轮询版用死 循环检查状态、CPU持续空转;直接聚合版把观察者硬编码进被观察者内部,只能支持唯一观察者, 违反开闭原则;引入Observable接口版维护观察者集合动态管理,新增观察者只需注册。发散: 从”轮询”到”回调”再到”多播回调”,这个演化路径是事件驱动架构发展的缩影。

参考来源

- 位置:《设计模式之禅(第2版)》第22章《观察者模式》(源文件:_epub-src/text/part0099.html) - 结论依据:原文依次展示Spy线程while(true)轮询方案(CPU飙升、Eclipse不响应)、HanFeiZi直接聚合LiSi的方案(只能支持单一观察者、违反开闭原则)、引入Observable接口支持多观察者动态增减的最终方案。 - 原始内容:看看上面的程序……使用了一个死循环while(true)来做监听,要是用到项目中,你要多少硬件投入进来?……韩非子的活动只通知了李斯一个人,这不可能……这和开闭原则严重违背呀,我们的程序有问题。