免费预览已结束,剩余10页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
设计模式应用 西南科技大学计算机科学与技术学院陈念年2012年秋季学期 设计模式 案例地雷战中 鬼子进村了 哨兵需要及时的通知乡亲们撤离 游击队准备战斗 地雷挂线 电影 地雷战 海报 设计模式 解决思路1鬼子 哨兵 乡亲 游击队 地雷 抽象成独立的类哨兵类与包含乡亲 游击队 地雷等对象 鬼子来的时候遍历调用个对象的对应函数行为 CodeUsingC 设计模式 问题 如果地下党同志来了 还需要通知他 解决 加对象 改函数 硬编码B的变化直接导致A的变化 因为A依赖一个B的具体对象 强耦合 造成软件很难灵活抵御需求带来的变化与更改 解决 依赖倒转 面向接口编程 不要依赖一个对象 去依赖一个抽象或接口 设计模式 解决思路2对通知 依赖 目标对象进行抽象 乡亲与游击队的函数可能差别很大 名字 参数 但是一点 他们的功能是一样的 就是对鬼子进村做出相应 抽象依赖抽象 使得结构耦合度降低 CodeUsingC 设计模式 思路2进一步的 哨兵有明哨 暗哨 连环哨 哨兵的一些功能是变化的 怎么办 解决 抽象哨兵一个对象不稳定 一定要去把对象分出稳定部分或者不稳定部分 设计模式 观察者模式UML结构 设计模式 一种发布 订阅模型Observer模式使得可以独立地改变目标与观察者 从而使两者之间的依赖关系达到松耦合 目标发送通知时 无需指定观察者 通知会自动传播 观察者自己决定是否需要订阅通知 目标 Subject 对象对此一无所知 定义对象间的一种一对多的依赖关系 可以一对一 以便当一个对象的状态发生改变时 所有依赖于它的对象都得到通知并自动更新 设计模式 GoF 设计模式 现在有一个游戏很流行 坦克世界 假如我们要在游戏中开发一种坦克 除了各种不同型号的坦克外 希望可以在根据不同作战场合中为坦克炮增加一种或多种发射功能 比如发射破甲弹 HE 发射炮射导弹 Missile 发射激光 Laser 进一步 提供红外夜视功能 自动瞄准 水陆两栖 自动防御系统等 设计模式 解决方法1 继承方式 设计模式 如何解决几个问题 使 对象功能的扩展 能够根据需要来动态实现 避免 扩展功能的增多 带来的子类的膨胀 使得任何 功能的扩展变化 所导致的影响降到最低 问题原因 过度使用了继承来扩展对象的功能静态扩展 缺乏灵活性 造成子类的极度膨胀 不符合设计模式的一个原则 设计模式 代码Decorator模式结构图 设计模式 简化形式1 只有一个ConcreteComponent类而没有抽象的Component接口 设计模式 适用场合1 需要扩展一个类的功能 或给一个类添加附加职责 2 需要动态的给一个对象添加功能 这些功能可以再动态的撤销 3 需要增加由一些基本功能的排列组合而产生的非常大量的功能 从而使继承关系变的不现实 4 当不能采用生成子类的方法进行扩充时 一种情况是 可能有大量独立的扩展 为支持每一种组合将产生大量的子类 使得子类数目呈爆炸性增长 另一种情况可能是因为类定义被隐藏 或类定义不能用于生成子类 优点采用组合方式扩展对象的功能通过使用不同的具体装饰类以及这些装饰类的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年罗非鱼捕捞合同协议
- 2025年智能能量管理系统可行性研究报告及总结分析
- 2025年海洋能源开发的经济效益可行性研究报告及总结分析
- 2025年立体货架租赁安装合同
- 2025年贵州省安顺市普定县保安员招聘考试题库附答案解析
- 2025年用户体验提升技术整合项目可行性研究报告及总结分析
- 2025年老年人日间照料服务协议(失智照护专项)
- 地产行业市场前景及投资研究报告:高品质住宅三四线楼市变化结构性机会
- 新媒体运营人技能自测题及答案手册
- 2025年量子计算在数据处理领域的应用可行性研究报告及总结分析
- 买卖当归合同协议书
- 产品研发协议书范本
- 2025中国福特宝足球产业发展公司招聘3人笔试考试参考试题及答案解析
- 大五人格课件
- 《活动课:探寻红色文化的历史基因》课件
- 2025初中英语词汇搭配手册
- 苏晋能源控股有限公司招聘笔试真题2024
- 2025安徽省转化医学科技有限公司社会招聘4人笔试考试参考题库附答案解析
- 高一英语语法综合复习资料包
- 科研项目基础条件与保障材料撰写
- 水下混凝土浇筑导管水密试验方案
评论
0/150
提交评论