博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
设计模式之Observer(观察者)模式
阅读量:7212 次
发布时间:2019-06-29

本文共 320 字,大约阅读时间需要 1 分钟。

需求:

有一个报社,用户可以随时订阅报纸,也可以随时取消订阅。当每天的新闻来的时候,报社用邮递员投递给订阅了报纸的用户。订阅者有老人、小孩和青年。

 

分析:

报社相当于被观察的对象,用户相当于观察者,一旦新闻有更新,报社就通知所有观察者。

 

类图:

 

 

扩展:

 该类图使用的是“推”的方式将新闻推送给订阅者。还可以使用一种的“拉”的方式实现,在Update传递空参数,只是通知订阅者数据有更新,然后由订阅者自己去报社获取(GetNews)。这种方式实现起来更麻烦,但是更容易扩展,如果有一天订阅者需要的参数变化,只需要在报社类里面添加一个方法就好。

转载于:https://www.cnblogs.com/key000/p/4099083.html

你可能感兴趣的文章
穿越ASA进行traceroute或tracert测试
查看>>
wxWidgets中字符串操作例子
查看>>
C#设计模式(14)——模板方法模式(Template Method)
查看>>
构建高性能的ASP.NET应用(五)-如何开始寻找性能瓶颈
查看>>
ipython notebook [jupyter] 使用
查看>>
[原创]Editplus巧删文本中大量空行
查看>>
SharePoint常见问题一:无法连接数据库
查看>>
LAMP自动安装脚本(上)
查看>>
安全规范和指南系列之二
查看>>
IT草根的江湖之路之七: 挑战,刚刚开始
查看>>
总结之:CentOS6.5 DNS服务BIND配置、正反向解析、主从及压力测试(1)
查看>>
Spring Security(16)——基于表达式的权限控制
查看>>
Oracle中的LOB数据类型以及ibatis中处理该类型的typeHandler
查看>>
917:Knight Moves
查看>>
【IT基础】windows核心编程整理(上)
查看>>
[arm驱动]linux并发与竞态---并发控制
查看>>
jailkit 限制用户活动范围和权限
查看>>
WMI技术的使用
查看>>
Socket编程实践(10) --select的限制与poll的使用
查看>>
Unix Study之--AIX安装和配置SSH
查看>>