本文素材来自《深入浅出设计模式》(<<Head First Design Patterns - A Brain-Friendly Guide>>)
准备写一个系列,把书中的内容简化提炼,加入自己的心得。希望可以更好的介绍模式。
定义
观察者模式定义一种一对多关系。
主题状态改变时,所有观察者自动获得通知并做出相应改变。
报纸发行
读者(观察者)可以随时订阅或取消订阅,订阅后得到每一期报纸。取消订阅后则过自己的生活,不会受到骚扰。
优点
主题和观察者低耦合,互相不需要了解。观察者可以动态加入或取消。
模式生命周期
生命周期实现
观察者模式通常通过接口(Interface)定义关系。然后主题和观察者可以有各自的实现
实现实际应用
我们开发大规模系统时,服务器响应时间,流量等性能数据的收集至关重要。性能数据就是一种“主题”。每一个页面点击都会产生“主题数据”。
框架开发者实现不同的“观察者”,订阅数据用以不同用途。比如日志观察者订阅数据并将之写入日志;指标观察者订阅数据并汇总以产生监控曲线图。
网友评论