- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Observer模式的研究与实现.pdf
Observer 模式的研究与实现
1 2 1 1
于凤东 郭乃珠 马安香 马玉慧
1 东北大学信息科学与工程学院 沈阳 (110004)
2 长春理工大学计算机系 长春 (130022)
E-mail: yufdsoft@126.com
摘 要:随着软件产业的快速发展,一方面计算机软件技术快速普及,软件已经涉及到了诸
多领域;一方面带来了软件开发模式的根本变革。从最初的软件作坊式开发到软件工程的诞
生,直到近代的软件工程的发展,软件开发模式走过了曲折而又艰难的路程。设计模式理论
的提出,对软件设计和开发者来说受益非浅。本文致力于说明 Observer 模式的原理。首先
介绍了设计模式理论的相关内容和相关术语;分析了 Observer 模式的适用范围;重点阐述
了Observer 模式的原理,并且用delphi6.0 实现了一个Observer 模式的简单例子。
关键词:设计模式 观察者模式 对象
1 引言
设计面向对象的软件比较困难,而设计可复用的面向对象的软件就更困难。因为在软件
设计之初,既要针对当前的问题,又要考虑到对将来的问题和需求有足够的通用性,尽量避
免重复设计或者尽可能少的重复设计。我们总是设法避免或尽可能减少模块的耦合度,希望
以此来增加系统的可扩展性和复用率。设计模式理论的出现,对上述问题提出了很好的解决
方案。本文着重论述观察者模式的原理与实现,在最后用 delphi6.0 实现了一个观察者模式
的简单例子。
2 设计模式概述
设计模式是对软件可重用设计的高度总结。在计算机科学中,对设计模式的简单定义就
是对于一类重复出现的问题的一中可重用的解决方案;在软件工程中一个设计模式往往能解
决一类设计问题,设计模式为软件的设计人员提供了行之有效的工具。采用设计模式思想的
软件系统具有更好的扩展性和重用性。
2.1 设计模式相关术语
1
● 模式名称:一个代理名词,它用一两个词来描述模式的问题,解决方案和效果。
● 问题:描述了在何时使用设计模式。
● 解决方案:描述了设计的组成部分,它们之间的相互关系及各自的职责和协作方式。
● 效果:描述了模式应用的效果和使用模式应权衡的的问题。
● 开闭原则:这一原则最早由 Bertrand Meyer 提出,指的是扩展性良好的软件应当
对修改关闭,对扩展开放。
2.2 设计模式的分类
设计模式在粒度和抽象层次上各不相同。根据模式的适用范围,设计模式可分为类模式
和对象模式。类模式处理类和子类之间的关系,这些关系通过继承建立,是静态的;根据模
式的工作目的,设计模式可分为创建型,行为型,结构型。
3 观察者模式
观察者模式属于设计模式中的行为模式,它采用 “注册-通知“的方式,定义了对象间
的一对多的关系,当一个对象发生改变时,所有向他注册的对象都会收到通知并且被更新。
3.1 为什么提出观察者模式
在软件的设计过程中,总会把一个大的系统分成多个相互协作的类。设计师的出发点不
同,分法就会不同。但是无论怎样分,我们都必须要维护对象间的协作性,有时为了对象间
的合作不得不提高类之间的耦合度,这就为将来软件的扩展带来了潜在的危机。比如:我们
经常会遇到这样的问题:数据整合之后显示在表格中,然后用柱状图显示出来,当用户修改
了表格中的数据时,柱状图也要相应的改变,反之亦然;如果我们不把数据的处理和图行显
示的处理程序分开,那么如有将来对数据的处理逻辑有所改变,就必须要修改图像显示程序,
可谓牵一发而动全局。观察者模式的提出,对上述问题提供了有效的解决途径。
3.2 何时使用观察者模式
① 一个对象关联两个或者两个以上的对象,把这些对象分别封装之后,可以使它们之间的
代码耦合度大大降低,在将来的
您可能关注的文档
- ICU护士职业暴露现状及防护行为的相关因素分析.pdf
- ICU病人感染的细菌分离及耐药性分析.pdf
- IE管理技术及其应用.pdf
- iFIX在城市供水SCADA系统的应用.pdf
- IGBT静态参数测试方法研究李更生.pdf
- igm焊接机器手故障与维修.pdf
- IMD技术与应用.pdf
- IT服务供需双边匹配的模糊多目标决策方法.pdf
- Java_XML的分布式异构数据库同步系统的实现.pdf
- JAVA语言内存分配的探讨.pdf
- 2-红河州建筑施工安全生产标准化工地复核评分表(2022年修改版).docx
- 6.锡通项目2018年下半年工作会汇报材料(2018.7.9).docx
- 2018道路工程知识点汇总(新版).docx
- 附件3:月度生产例会安全汇报资料-站台门项目部.docx
- 附件2:广东建工集团2018年度科技成果汇总表.DOC
- 马武停车区、三汇停车区停车位管理系统,0#台账缺量.doc
- 攀成钢委办发〔2015〕19号(党风廉政建设责任考核与追究办法).doc
- 1-红河州建筑工程质量管理标准化复核评分表(2022年修改版).docx
- 中交第三公路工程局第四工程分公司项目经济合同结算管理办法(修订).doc
- 厂站安全操作规程汇编.doc
文档评论(0)