设计模式 - 观察者(Observer)模式

本文素材来自《深入浅出设计模式》(<<Head First Design Patterns - A Brain-Friendly Guide>>)

准备写一个系列,把书中的内容简化提炼,加入自己的心得。希望可以更好的介绍模式。

定义

观察者模式定义一种一对多关系。

主题状态改变时,所有观察者自动获得通知并做出相应改变。

报纸发行

读者(观察者)可以随时订阅或取消订阅,订阅后得到每一期报纸。取消订阅后则过自己的生活,不会受到骚扰。

优点

主题和观察者低耦合,互相不需要了解。观察者可以动态加入或取消。

模式生命周期

生命周期

实现

观察者模式通常通过接口(Interface)定义关系。然后主题和观察者可以有各自的实现

实现

实际应用

我们开发大规模系统时,服务器响应时间,流量等性能数据的收集至关重要。性能数据就是一种“主题”。每一个页面点击都会产生“主题数据”。

框架开发者实现不同的“观察者”,订阅数据用以不同用途。比如日志观察者订阅数据并将之写入日志;指标观察者订阅数据并汇总以产生监控曲线图。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容