- 1、本文档共118页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
课程内容;课程目的;重点;结构型模式(StructuralPattern)关注如何将现有类或对象组织在一起形成更加强大的结构
不同的结构型模式从不同的角度组合类或对象,它们在尽可能满足各种面向对象设计原则的同时为类或对象的组合提供一系列巧妙的解决方案;7.1结构型模式概述;结构型模式一览表;7.2适配器模式;分析
现实生活:
不兼容:市电220V??笔记电脑20V
引入ACAdapter(交流电适配器)
软件开发:
存在不兼容的结构,例如方法名不一致
引入适配器模式;适配器模式的定义
将一个类的接口转换成客户希望的另一个接口。适配器模式让那些接口不兼容的类可以一起工作。
对象结构型模式/类结构型模式;适配器模式的定义
别名为包装器(Wrapper)模式
定义中所提及的接口是指广义的接口,它可以表示一个方法或者方法的集合
;7.2.2适配器模式的原理与框架;适配器模式的三个角色
Target(目标抽象类)定义把其他类转换为何种接口,也就是我们的期望接口
Adapter(适配器类)核心角色
Adaptee(适配者类)源角色;7.2.3应用案例-没有源码的依赖库;软件公司开发人员面对这个没有源码的依赖库,遇到一个令人烦恼的问题:如何在既不修改现有接口又不需要任何算法库代码的基础上实现依赖库的重用?
通过分析得知,现在软件公司面对的问题有点类似最开始所提到的电压问题,文件操作接口FileOperation好比只支持20V电压的笔记本,而依赖库好比220?V的家庭用电,这两部分都没有办法再进行修改,而且它们原本是两个完全不相关的结构,如图7-2所示。;实例类图;7.2.4适配器模式的优缺点与适用环境;模式缺点
类适配器模式:(1)一次最多只能适配一个适配者类,不能同时适配多个适配者;(2)适配者类不能为最终类;(3)目标抽象类只能为接口,不能为类
对象适配器模式:在适配器中置换适配者类的某些方法比较麻烦
;模式适用环境
系统需要使用一些现有的类,而这些类的接口不符合系统的需要,甚至没有这些类的源代码
创建一个可以重复使用的类,用于和一些彼此之间没有太大关联的类,包括一些可能在将来引进的类一起工作
;7.3桥接模式;分析
蜡笔:颜色和型号两??不同的变化维度(即两个不同的变化原因)耦合在一起,无论是对颜色进行扩展还是对型号进行扩展都势必会影响另一个维度
毛笔:颜色和型号实现了分离,增加新的颜色或者型号对另一方没有任何影响
;分析
;在软件开发中如何将多个变化维度分离?
;桥接模式的定义
对象结构型模式;桥接模式的定义
又被称为柄体(HandleandBody)模式或接口(Interface)模式
用抽象关联取代了传统的多层继承
将类之间的静态继承关系转换为动态的对象组合关系
;7.3.2桥接模式的原理与框架;桥接模式的结构
桥接模式包含以下4个角色:
Abstraction(抽象类)
RefinedAbstraction(扩充抽象类)
Implementor(实现类接口)
ConcreteImplementor(具体实现类);桥接模式的实现;7.3.3应用案例-跨平台数据处理系统;初始设计方案;两个主要问题;两个独立变化的维度;改进之后的应用案例;基本结构说明;7.3.4桥接模式的优缺点与适用环境;模式缺点
会增加系统的理解与设计难度,由于关联关系建立在抽象层,要求开发者一开始就针对抽象层进行设计与编程
正确识别出系统中两个独立变化的维度并不是一件容易的事情
;模式适用环境
需要在抽象化和具体化之间增加更多的灵活性,避免在两个层次之间建立静态的继承关系
抽象部分和实现部分可以以继承的方式独立扩展而互不影响
一个类存在两个(或多个)独立变化的维度,且这两个(或多个)维度都需要独立地进行扩展
不希望使用继承或因为多层继承导致系统类的个数急剧增加的系统
;7.4组合模式;Windows操作系统目录结构;分析
在树形目录结构中,包含文件和文件夹两类不同的元素
在文件夹中可以包含文件,还可以继续包含子文件夹
在文件中不能再包含子文件或者子文件夹
文件夹??容器(Container)
文件??叶子(Leaf);分析
当容器对象的某一个方法被调用时,将遍历整个树形结构,寻找也包含这个方法的成员对象并调用执行,牵一而动百,其中使用了递归调用的机制来对整个结构进行处理
由于容器对象和叶子对象在功能上的区别,在使用这些对象的代码中必须有区别地对待容器对象和叶子对象,而实际上大多数情况下客户端希望一致地处理它们,因为对于这些对象的区别对待将会使程序非常复杂;如何一致地对待容器对象和叶子对象?
;组合模式定义
对象结构型模式;组合模式定义
又称为“部分-整体”(Part-Whole)模式
将对象组织到树形结构
您可能关注的文档
- 《软件建模与实践》课件_8_软件设计模式-行为型模式 - 副本.pptx
- 《机器学习与Python实践》课件_11-卷积神经网络.pptx
- 《基于新信息技术的JavaScript程序设计基础》课件_第11章.pptx
- 《信息技术基础》课件_任务2 制作毕业答辩演讲稿.pptx
- 《智能机器人学》课件_第1章 绪论.pptx
- 《机器学习与Python实践》课件_13-强化学习.pptx
- 《信息技术基础》课件_任务1 制作电子相册.pptx
- 《基于新信息技术的JavaScript程序设计基础》课件_第6章.pptx
- 《机器学习与Python实践》课件_10TensorFlow基础框架.pptx
- 《信息技术基础》课件_任务2 宣传海报排版.pptx
- 区委书记、市国资委党委领导班子2025年组织生活会对照“四个带头”含反面典型案例举一反三剖析方面检查材料【两篇文】.docx
- 局党组书记、市国资委党委领导班子2025年组织生活会对照“四个带头”含反面典型案例举一反三剖析方面个人检查材料2篇文.docx
- 市交通运输局局长2025年专题生活会对照“四个带头”含落实意识形态工作责任制方面个人对照检查发言提纲与检察院领导班子“四个带头”检查材料【2篇文】.docx
- 市投资促进局党支部书记2025年组织生活会对照“四个带头”个人对照检查发言材料与党组书记“四个带头”个人对照检查材料(内蒙古地区四个对照,反面典型案例检视剖析)【2篇文】.docx
- 市教育局党委副书记、市国资委党委领导班子2025年“四个带头”个人对照检查发言材料(上年度整改+个人事项+典型事例剖析)2篇文.docx
- 2025年专题生活会“四个带头”方面对照检视材料(问题+原因+措施+意识形态)与纪检委员专题生活会“四个带头”方面个人对照检查材料【2篇文】.docx
- 检察院领导班子2025年专题生活会对照“四个带头”检查材料与县司法局专题生活会党组书记个人对照“四个带头”对照检查材料(含反面典型案例全面剖析)2篇文.docx
- 市机关事务局党支部书记、局党组书记2025年组织生活会对照“四个带头”含反面典型案例举一反三剖析方面个人发言材料、检查材料【2篇文】.docx
- 2025年领导干部专题生活会“四个带头”对照检查材料与市审计局领导班子专题生活会“四个带头”含反面典型案例剖析对照检查材料2篇文.docx
- 2025年县司法局专题民主生活会班子围绕“4个带头”对照检查材料与反面典型案例回顾与剖析对照检查发言材料2篇文.docx
最近下载
- 一种DL-对羟基苯海因的制备方法.pdf VIP
- 2025年冲刺-副主任医师(副高)-传染病学(副高)考试历年(2018-2024)真题荟萃附答案.docx
- 22G101-1与16G101-1图集变化内容培训考试题及答案.doc
- 的有关规定,现将2018年云南省水利水电工程高级工程师评.DOC
- 初中英语课外阅读黑布林版铁道儿童中文译文.docx
- 综合应用能力事业单位考试(综合管理类A类)试题及解答参考(2025年).docx VIP
- 《制取氧气》优课教学课件.pptx VIP
- 自考《心理卫生与心理辅导》复习题(含答案).pdf VIP
- 2024年湖南外贸职业学院单招职业技能测试题库(各地真题).docx VIP
- 2024年全国中小学思政课教师网络培训示范班在线考试答案.docx
文档评论(0)