欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    软件设计模式ch1 - 设计模式入门 - 策略模式.ppt

    • 资源ID:69529805       资源大小:3.37MB        全文页数:68页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    软件设计模式ch1 - 设计模式入门 - 策略模式.ppt

    软件设计方法及设计模式软件设计方法及设计模式张聚礼张聚礼张聚礼张聚礼 副教授副教授副教授副教授/系统分析师系统分析师系统分析师系统分析师设设 计计 模模 式式 入入 门门 策策 略略 模模 式式1一一二二三三四四五五六六模拟鸭子应用模拟鸭子应用模拟鸭子应用模拟鸭子应用继承继承继承继承分开变化和不变部分分开变化和不变部分分开变化和不变部分分开变化和不变部分封装行为封装行为封装行为封装行为策略模式策略模式策略模式策略模式如何使用设计模式?如何使用设计模式?如何使用设计模式?如何使用设计模式?主要内容主要内容一、模拟鸭子应用一、模拟鸭子应用背景背景 方法方法 问题问题 (一一)(二二)(三三)l模拟鸭子游戏模拟鸭子游戏模拟鸭子游戏模拟鸭子游戏SimUDuckSimUDuck:各种鸭子各种鸭子各种鸭子各种鸭子一边游泳戏水,一边呱呱叫一边游泳戏水,一边呱呱叫一边游泳戏水,一边呱呱叫一边游泳戏水,一边呱呱叫(一一)背景背景(二二)方法方法(二二)方法方法l现在,让鸭子飞起来现在,让鸭子飞起来现在,让鸭子飞起来现在,让鸭子飞起来(二二)方法方法lIts easy.Its easy.(二二)方法方法l这时,问题出现了这时,问题出现了这时,问题出现了这时,问题出现了(三三)问题问题(三三)问题问题l简单的使用继承,结局并不完美。简单的使用继承,结局并不完美。简单的使用继承,结局并不完美。简单的使用继承,结局并不完美。(三三)问题问题我们应该怎么做呢?我们应该怎么做呢?我们应该怎么做呢?我们应该怎么做呢?二、继承二、继承继承继承 接口接口 问题问题 (一一)(二二)(三三)l继承如何解决上述继承如何解决上述继承如何解决上述继承如何解决上述问题呢?问题呢?问题呢?问题呢?(一一)继承继承l但是但是但是但是(一一)继承继承(一一)继承继承l在继承的同时,可在继承的同时,可在继承的同时,可在继承的同时,可以使用接口以使用接口以使用接口以使用接口(二二)接口接口(二二)接口接口l现在的设计怎么样呢?现在的设计怎么样呢?现在的设计怎么样呢?现在的设计怎么样呢?(二二)接口接口l重复的代码会变多重复的代码会变多重复的代码会变多重复的代码会变多l会随着继承规模的增加会随着继承规模的增加会随着继承规模的增加会随着继承规模的增加而扩大而扩大而扩大而扩大(三三)问题问题l应该怎么样呢?应该怎么样呢?应该怎么样呢?应该怎么样呢?(三三)问题问题三、分开变化和不变部分三、分开变化和不变部分软件开发面临的问题软件开发面临的问题 如何设计如何设计 分开变化和不变部分分开变化和不变部分 (一一)(二二)(三三)(一一)软件开发面临的问题软件开发面临的问题(一一)软件开发面临的问题软件开发面临的问题l设计原则一:设计原则一:设计原则一:设计原则一:找出应用中需要变找出应用中需要变找出应用中需要变找出应用中需要变化之处,把它们独化之处,把它们独化之处,把它们独化之处,把它们独立出来,不要和那立出来,不要和那立出来,不要和那立出来,不要和那些不需要变化的代些不需要变化的代些不需要变化的代些不需要变化的代码混在一起。码混在一起。码混在一起。码混在一起。(二二)如何设计如何设计l结果:结果:结果:结果:代码改变引起的后代码改变引起的后代码改变引起的后代码改变引起的后果减少果减少果减少果减少系统更有弹性系统更有弹性系统更有弹性系统更有弹性(二二)如何设计如何设计l取出易于变化的部分取出易于变化的部分取出易于变化的部分取出易于变化的部分(三三)分开变化和不变部分分开变化和不变部分(三三)分开变化和不变部分分开变化和不变部分四、封装行为四、封装行为设计行为设计行为 实现行为实现行为 进一步设计进一步设计 (一一)(二二)(三三)(四四)测试测试 (五五)动态行为动态行为 (六六)封装行为封装行为l设计原则二:设计原则二:设计原则二:设计原则二:针对接口编程,而不是针对接口编程,而不是针对接口编程,而不是针对接口编程,而不是针对实现编程针对实现编程针对实现编程针对实现编程(一一)设计行为设计行为l那么,鸭子的行为将放那么,鸭子的行为将放那么,鸭子的行为将放那么,鸭子的行为将放在一个类中,这样,鸭在一个类中,这样,鸭在一个类中,这样,鸭在一个类中,这样,鸭子类就不需要知道行为子类就不需要知道行为子类就不需要知道行为子类就不需要知道行为的实现细节。的实现细节。的实现细节。的实现细节。(一一)设计行为设计行为l为什么不使用抽象类,为什么不使用抽象类,为什么不使用抽象类,为什么不使用抽象类,进而使用多态呢?进而使用多态呢?进而使用多态呢?进而使用多态呢?(一一)设计行为设计行为l例如:例如:例如:例如:(一一)设计行为设计行为l存在问题:存在问题:存在问题:存在问题:针对实现编程针对实现编程针对实现编程针对实现编程针对接口针对接口针对接口针对接口/超类型编程超类型编程超类型编程超类型编程(一一)设计行为设计行为l更棒的是:更棒的是:更棒的是:更棒的是:在运行时才指定具体实现的对象在运行时才指定具体实现的对象在运行时才指定具体实现的对象在运行时才指定具体实现的对象(一一)设计行为设计行为l两个行为接口两个行为接口两个行为接口两个行为接口(二二)实现行为实现行为l这样的设计充分地体现了继承的优点,这样的设计充分地体现了继承的优点,这样的设计充分地体现了继承的优点,这样的设计充分地体现了继承的优点,而摒弃了其不足。而摒弃了其不足。而摒弃了其不足。而摒弃了其不足。(二二)实现行为实现行为(二二)实现行为实现行为l进行整合,使用进行整合,使用进行整合,使用进行整合,使用“委托委托委托委托”方式来处理鸭子的行为方式来处理鸭子的行为方式来处理鸭子的行为方式来处理鸭子的行为添加两个实例变量添加两个实例变量添加两个实例变量添加两个实例变量(三三)进一步设计进一步设计实现行为实现行为实现行为实现行为“委托委托委托委托”(三三)进一步设计进一步设计如何设定行为的实例变量如何设定行为的实例变量如何设定行为的实例变量如何设定行为的实例变量(三三)进一步设计进一步设计l那么,我们就来看那么,我们就来看那么,我们就来看那么,我们就来看看是否达到设计效看是否达到设计效看是否达到设计效看是否达到设计效果。果。果。果。(三三)进一步设计进一步设计lDuck.javaDuck.java(四四)测试测试l lFlyBehavior.javaFlyBehavior.java(四四)测试测试l lQuackBehavior.javaQuackBehavior.java(四四)测试测试lMiniDuckSimulator.javaMiniDuckSimulator.java(四四)测试测试lRUNRUN(四四)测试测试l下面,看看如何设定动态行为下面,看看如何设定动态行为下面,看看如何设定动态行为下面,看看如何设定动态行为(五五)动态行为动态行为l在在在在DuckDuck类中添加类中添加类中添加类中添加2 2个方法个方法个方法个方法(五五)动态行为动态行为l建立新类建立新类建立新类建立新类ModelDuckModelDuck(五五)动态行为动态行为l建立新的行为类建立新的行为类建立新的行为类建立新的行为类FlyRocketPoweredFlyRocketPowered(五五)动态行为动态行为l测试测试测试测试(五五)动态行为动态行为l下面,来看看整体布局。下面,来看看整体布局。下面,来看看整体布局。下面,来看看整体布局。(六六)封装行为封装行为l设计原则三:设计原则三:设计原则三:设计原则三:多用组合,少用继承。多用组合,少用继承。多用组合,少用继承。多用组合,少用继承。(六六)封装行为封装行为l这个设计就是策略模式这个设计就是策略模式这个设计就是策略模式这个设计就是策略模式(六六)封装行为封装行为五、策略模式五、策略模式定义定义 餐厅启示餐厅启示 办公室场景办公室场景 (一一)(二二)(三三)术语的威力术语的威力 (四四)l策略模式定义了算法族,分别封装起来,使它们策略模式定义了算法族,分别封装起来,使它们策略模式定义了算法族,分别封装起来,使它们策略模式定义了算法族,分别封装起来,使它们间可以互相替换,让算法的变化独立于使用它们间可以互相替换,让算法的变化独立于使用它们间可以互相替换,让算法的变化独立于使用它们间可以互相替换,让算法的变化独立于使用它们的客户。的客户。的客户。的客户。(一一)定义定义l下面有什么不同?下面有什么不同?下面有什么不同?下面有什么不同?(二二)餐厅启示餐厅启示(三三)办公室场景办公室场景(三三)办公室场景办公室场景lPatterns allow you to say more with less.Patterns allow you to say more with less.lTalking at the pattern level allows you to Talking at the pattern level allows you to stay“in the design”longer.stay“in the design”longer.lShared vocabularies can turbo charge your Shared vocabularies can turbo charge your development team.development team.lShared vocabularies encourage more junior Shared vocabularies encourage more junior developers to get up to speed.developers to get up to speed.(四四)术语的威力术语的威力六、如何使用设计模式?六、如何使用设计模式?如何使用设计模式?如何使用设计模式?错误观念错误观念 (一一)(二二)l想想看想想看想想看想想看(一一)如何使用设计模式?如何使用设计模式?(二二)错误观念错误观念(二二)错误观念错误观念七、总结七、总结AbstractionAbstractionEncapsulationEncapsulationPolymorphismPolymorphismInheritanceInheritanceEncapsulate what Encapsulate what varies.varies.Favor Favor composition over composition over inheritenceinheritence.Program to Program to interfaces,not interfaces,not implementations.implementations.Strategy-defines a Strategy-defines a family of algorithms,family of algorithms,encapsulates each encapsulates each one,and makes them one,and makes them interchangeable.interchangeable.Strategy lets the Strategy lets the algorithm vary algorithm vary independently from independently from clients that use it.clients that use it.总结总结OO BasicsOO BasicsOO PrinciplesOO PrinciplesOO PatternsOO Patterns

    注意事项

    本文(软件设计模式ch1 - 设计模式入门 - 策略模式.ppt)为本站会员(qwe****56)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

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

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

    收起
    展开