设计模式策略模式精品文稿.ppt

上传人:石*** 文档编号:91063399 上传时间:2023-05-21 格式:PPT 页数:16 大小:4.75MB
返回 下载 相关 举报
设计模式策略模式精品文稿.ppt_第1页
第1页 / 共16页
设计模式策略模式精品文稿.ppt_第2页
第2页 / 共16页
点击查看更多>>
资源描述

《设计模式策略模式精品文稿.ppt》由会员分享,可在线阅读,更多相关《设计模式策略模式精品文稿.ppt(16页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、设计模式策略模式第1页,本讲稿共16页一个简单的例子JOE在游戏公司工作。该游戏公司计划开发一个虚拟鸭子行为仿真系统。该系统可以模拟鸭子的各种行为,如:1 鸭子鸣叫(quack)2 鸭子游泳(swim)等等基本功能艰巨的任务落在了JOE身上。第2页,本讲稿共16页初始解决方案JOE采用标准的面向对象技术建模。具体如右图:一个Duck父类,其他的各种类型的Duck类(绿头鸭,红头鸭等)从该类继承。第3页,本讲稿共16页项目新需求项目经理:由于用户需要,公司要求鸭子要有飞的功能。JOE:OK,没有问题,我只需要在Duck父类里面加入fly()方法就能实现。项目经理:GOOD!第4页,本讲稿共16页

2、BUG?项目经理:JOE,我在项目验收现场,用户给了个简单的DEMO,我看到橡胶(RubberDuck)的鸭子飞了起来?这是你故意的么?JOE:oh,no。他们没有告诉我还有橡胶的鸭子。可能我的程序需要稍微修改一下第5页,本讲稿共16页问题:如何修改程序?程序存在的问题:为了尽量实现代码的复用,JOE用了继承,但这也同时加大了程序的维护难度。第一个解决方案:使用重载!橡胶鸭和木头鸭的实现。第6页,本讲稿共16页解决方案存在的问题 需求说明的不断增加,每加入一种鸭子,都需要不断重载quack()和swim()方法。大大增加程序维护的难度。如何解决呢?第二个解决方案:使用接口(interface)

3、。第7页,本讲稿共16页What do YOU think about this design?第8页,本讲稿共16页What would you do if you are Joe?第9页,本讲稿共16页小结1.单使用继承并不能完美地解决问题。(子类的行为不断变化)2.第二个方案的接口也没有很好地解决代码复用的问题。第10页,本讲稿共16页第一种设计模式(STRATEGY)概念:所谓策略(Strategy)模式,是一种对象行为模式,主要是定义一系列的算法,把这些算法一个个封装成单独的类.第11页,本讲稿共16页使用设计模式解决问题1.分离出程序中变化的部分。Fly()方法和Quack()是Duck类的一部分。现在从Duck()类分离出来。第12页,本讲稿共16页对象行为设计第13页,本讲稿共16页面向实现与面向接口的区别第14页,本讲稿共16页设计模式解决方案第15页,本讲稿共16页代码实现第16页,本讲稿共16页

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁