设计模式-策略模式(strategy).ppt

设计模式-策略模式(strategy).ppt

ID:49417038

大小:2.40 MB

页数:16页

时间:2020-02-06

设计模式-策略模式(strategy).ppt_第1页
设计模式-策略模式(strategy).ppt_第2页
设计模式-策略模式(strategy).ppt_第3页
设计模式-策略模式(strategy).ppt_第4页
设计模式-策略模式(strategy).ppt_第5页
资源描述:

《设计模式-策略模式(strategy).ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

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

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

3、hisdesign?WhatwouldyoudoifyouareJoe?小结1.单使用继承并不能完美地解决问题。(子类的行为不断变化)2.第二个方案的接口也没有很好地解决代码复用的问题。第一种设计模式(STRATEGY)概念:所谓策略(Strategy)模式,是一种对象行为模式,主要是定义一系列的算法,把这些算法一个个封装成单独的类.使用设计模式解决问题1.分离出程序中变化的部分。Fly()方法和Quack()是Duck类的一部分。现在从Duck()类分离出来。对象行为设计面向实现与面向接口的区别设计模式解决方案代码实现……

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。