




已阅读5页,还剩10页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
.,1,设计模式应用,西南科技大学计算机科学与技术学院陈念年2012年秋季学期,2,.,设计模式,案例地雷战中,鬼子进村了,哨兵需要及时的通知乡亲们撤离、游击队准备战斗、地雷挂线.,电影地雷战海报,3,.,设计模式,解决思路1鬼子、哨兵、乡亲、游击队、地雷.,抽象成独立的类哨兵类与包含乡亲、游击队、地雷等对象,鬼子来的时候遍历调用个对象的对应函数行为。,CodeUsingC+,4,.,设计模式,问题:如果地下党同志来了,还需要通知他?解决:加对象,改函数。-硬编码B的变化直接导致A的变化,因为A依赖一个B的具体对象。强耦合,造成软件很难灵活抵御需求带来的变化与更改。,解决:依赖倒转,面向接口编程。不要依赖一个对象,去依赖一个抽象或接口。,5,.,设计模式,解决思路2对通知(依赖)目标对象进行抽象。乡亲与游击队的函数可能差别很大(名字、参数),但是一点,他们的功能是一样的,就是对鬼子进村做出相应。抽象依赖抽象,使得结构耦合度降低,CodeUsingC+,6,.,设计模式,思路2进一步的:哨兵有明哨、暗哨、连环哨.哨兵的一些功能是变化的,怎么办?,解决:抽象哨兵一个对象不稳定,一定要去把对象分出稳定部分或者不稳定部分。,7,.,设计模式,观察者模式UML结构,8,.,设计模式,一种发布-订阅模型Observer模式使得可以独立地改变目标与观察者,从而使两者之间的依赖关系达到松耦合。目标发送通知时,无需指定观察者,通知会自动传播。观察者自己决定是否需要订阅通知,目标(Subject)对象对此一无所知。,定义对象间的一种一对多的依赖关系(可以一对一),以便当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并自动更新。设计模式GoF,9,.,设计模式,现在有一个游戏很流行:坦克世界。假如我们要在游戏中开发一种坦克,除了各种不同型号的坦克外,希望可以在根据不同作战场合中为坦克炮增加一种或多种发射功能:比如发射破甲弹(HE),发射炮射导弹(Missile),发射激光(Laser)。进一步:提供红外夜视功能,自动瞄准,水陆两栖,自动防御系统等。,10,.,设计模式,解决方法1:继承方式,11,.,设计模式,如何解决几个问题:使“对象功能的扩展”能够根据需要来动态实现?避免“扩展功能的增多”带来的子类的膨胀?使得任何“功能的扩展变化”所导致的影响降到最低。,问题原因:过度使用了继承来扩展对象的功能静态扩展,缺乏灵活性;造成子类的极度膨胀;不符合设计模式的一个原则,12,.,设计模式,代码Decorator模式结构图,13,.,设计模式,简化形式1:只有一个ConcreteComponent类而没有抽象的Component接口,14,.,设计模式,适用场合1.需要扩展一个类的功能,或给一个类添加附加职责。2.需要动态的给一个对象添加功能,这些功能可以再动态的撤销。3.需要增加由一些基本功能的排列组合而产生的非常大量的功能,从而使继承关系变的不现实。4.当不能采用生成子类的方法进行扩充时。一种情况是,可能有大量独立的扩展,为支持每一种组合将产生大量的子类,使得子类数目呈爆炸性增长。另一种情况可能是因为类定义被隐藏,或类定义不能用于生成子类。优点采用组合方式扩展对象的功能通过使用不同的具体装饰类以及这些装饰类的排列组
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 章丘社工考试试题及答案
- 合同协议范本教育助学金担保标准借款合同6篇
- 2025年儿科学患儿常见肠道感染诊疗模拟考试卷答案及解析
- 医师执业考试试题及答案
- 湖北团员考试试题及答案
- 2025年肿瘤科综合治疗方案制定模拟考试答案及解析
- 2025年康复医学截瘫康复训练计划制定模拟试卷答案及解析
- 2025年妇产科常见疾病诊断治疗综合能力测评答案及解析
- 化学学考模拟试题及答案
- 口腔黏膜考试试题及答案
- 白鹿原名著导读读书分享
- 定密理论与实务3定密的依据课件
- 同济大学信纸
- 交通运输工程施工安全监管台帐(参考)用表样表分享
- 建筑消能减震设计技术及工程实例讲解
- 电梯控制技术PPT完整全套教学课件
- 国开电大《工程数学(本)》形成性考核作业5答案
- LS/T 1201-2020磷化氢熏蒸技术规程
- HY/T 053-2001微孔滤膜
- GB/T 4798.5-2007电工电子产品应用环境条件第5部分:地面车辆使用
- GB/T 4513-2000不定形耐火材料分类
评论
0/150
提交评论