




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、模式的分类(gof提出的23个)Factory MethodAdapter (类)Adapter (对象)CommandBridgeFacadeObserverStrategyBridge(桥梁)模式 最初的设计 11 Bridge(桥梁)模式 需求变化:鸟类要会飞 12 Bridge(桥梁)模式 如果增加一种鸟类“企鹅”呢? 13 Bridge(桥梁)模式 改进方法:对“飞”使用多态 14 Bridge(桥梁)模式 改进方法:再次使用继承 15 Bridge(桥梁)模式 如果增加“游泳”行为呢? 16 设计原则:组合优先 继承复用的优点 可以很容易的修改或扩展父类的实现 18 设计原则:组合
2、优先 如果使用继承来描述: 一旦增加新的汽车种类或用途,都需要 大量改动原有代码 22 设计原则:组合优先 使用“组合”思路考虑问题 “汽车”拥有某种或某些“用途” “汽车”和“用途”独立变化,互不影响 23 设计原则:组合优先区分“Is-A”与“Has-A”设计原则:组合优先问题设计原则:组合优先换一个角度看问题Bridge(桥梁)模式 “发现变化点” 28 Bridge(桥梁)模式 “封装变化点” 变化点1:小鸟一家 29 Bridge(桥梁)模式“封装变化点”Bridge(桥梁)模式“封装变化点”鸟儿拥有飞、游泳的行为 33 Bridge(桥梁)模式Bridge(桥梁)模式结构Bridg
3、e(桥梁)模式应用举例1:“小朋友画画”Bridge(桥梁)模式Bridge(桥梁)模式应用举例2传统的设计Bridge(桥梁)模式应用Bridge模式设计原则:开-闭原则、封装可变性分析设计原则:开-闭原则、封装可变性设计模式对“开-闭”原则的支持设计原则:开-闭原则、封装可变性对“开-闭”原则支持的不好的例子Strategy(策略)模式 桥梁模式 使得两个变化点的独立 55 Strategy(策略)模式 单独看飞的行为的实现 策略模式:封装了一系列算法,使得它 们可以相互替换 效果:算法可以独立变化 56 Strategy(策略):ConcreteStrategy(具体策略):Contex
4、t(上下文):Adapter(适配器)模式 新老代码接口不一致 62 Adapter(适配器)模式 疑问 把老代码修改一下不就可以了么?如下: 63 Adapter(适配器)模式 应用(对象)适配器模式实现接口转换 65 Adapter(适配器)模式Adapter(适配器)模式理解2:重新包装,改变接口Adapter(适配器)模式 类适配器 69 Adapter(适配器)模式结构Adapter(适配器)模式结构Adapter(适配器)模式应用举例1Adapter(适配器)模式使用对象AdapterAdapter(适配器)模式应用举例2Adapter(适配器)模式但是鲁智深并不是这样Adapte
5、r(适配器)模式所以当初鲁达剃度时,众僧说:Adapter(适配器)模式但是长老却说:Adapter(适配器)模式“天星”就是缺省适配器设计原则:里氏代换原则 例子1:“圆是不是椭圆?” 在几何学里,圆是椭圆的一种特殊情况 因此,把椭圆看作父类,把圆作为子类 80 设计原则:里氏代换原则 问题 椭圆有长轴、短轴 圆会完全继承下来 这些对于圆来说毫无意义 类似的:“正方形不是矩形” Circle circle; circle.GetMajorAxis(); 81 设计原则:里氏代换原则 例子2:“企鹅不是鸟的子类” 凡是鸟都会飞 但是企鹅不会 82 设计原则:里氏代换原则例子3设计原则:里氏代换
6、原则Java语言对此类问题的防范正确的方法设计原则:里氏代换原则Java中的反例设计原则:里氏代换原则看看C+ STL是怎么办的Factory Method(工厂方法)模式例子:“去快餐厅吃饭”Factory Method(工厂方法)模式 增加一种新的食物呢? 94 Factory Method(工厂方法)模式传统设计的缺点设计原则:依赖倒置原则为什么说“倒置”传统的依赖方向设计原则:依赖倒置原则 依赖具体的缺点 99 设计原则:依赖倒置原则 依赖抽象 抽象一般不会变动 这样代码不会受易变的具体层影响 100 Factory Method(工厂方法)模式“女娲抟土造人”Factory Meth
7、od(工厂方法)模式简单工厂:Factory Method(工厂方法)模式“女娲举绳造人”Factory Method(工厂方法)模式结构Factory Method(工厂方法)模式工厂方法应用到“快餐店”问题Façade(门面)模式例1:传统的医院:Façade(门面)模式人性化的医院Façade(门面)模式 家庭影院系统: 115 Façade(门面)模式用OO语言描述看电影的辛苦过程Façade(门面)模式 用一个门面对象简化所有细节 120 Façade(门面)模式举例:保安系统Façade(门面)模式使用门面模式设计原则:接口隔离原则 例子:全文搜索引擎 搜索 处理搜索结果 生成索引 128 设计原则:接口隔离原则 接口分割: 129 Command(命令)模式 传统的想法: 132 Command(命令)模式用户要求:按钮可以自定义Command(命令)模式结构例2:餐厅的工作流程þ汉堡þ可乐þ薯条菜单顾客顾客菜单服务员菜单厨师厨师菜单Command(命令)模式结构Command(命令)模式 运作过程: 141 Command(命令)模式 命令模式应用在遥控器上: 144 Command(命令)模式结构:Command(命
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 活动押金合同协议书范本
- 2025年家用水表项目合作计划书
- 2025年超高压复合胶管项目发展计划
- 有趣游戏活动策划与执行
- 细胞生物学实验室细胞冻存盒租赁与维护服务协议
- 环保企业应急预案编制与实施协议
- 微信社群运营及转化效果跟踪与反馈协议
- 知识产权侵权纠纷赔偿金额评估协议
- 北美保健品分销及市场推广合同
- 工业机器人维护保养与备件库存管理合同
- 2024年广东高校毕业生“三支一扶”计划招募笔试真题
- 5年级语文下册看拼音写词语汉字生字扩词日积月累专项练习电子版
- 中级审计师考试精彩瞬间试题及答案
- 霍乱的预防和控制
- 2025年“六一”少先队新队员入队仪式主持词
- 2025年第六届(中小学组)国家版图知识竞赛测试题库及答案
- 新时代劳动教育教程(高校劳动教育课程)全套教学课件
- GA/T 2012-2023窃照专用器材鉴定技术规范
- 优先使用国家基本药物培训-20220914
- 施工现场事故应急预案处理程序
- 学生家长满意度测评表.doc
评论
0/150
提交评论