软件设计模式ch1 - 设计模式入门 - 策略模式.ppt
《软件设计模式ch1 - 设计模式入门 - 策略模式.ppt》由会员分享,可在线阅读,更多相关《软件设计模式ch1 - 设计模式入门 - 策略模式.ppt(68页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、软件设计方法及设计模式软件设计方法及设计模式张聚礼张聚礼张聚礼张聚礼 副教授副教授副教授副教授/系统分析师系统分析师系统分析师系统分析师设设 计计 模模 式式 入入 门门 策策 略略 模模 式式1一一二二三三四四五五六六模拟鸭子应用模拟鸭子应用模拟鸭子应用模拟鸭子应用继承继承继承继承分开变化和不变部分分开变化和不变部分分开变化和不变部分分开变化和不变部分封装行为封装行为封装行为封装行为策略模式策略模式策略模式策略模式如何使用设计模式?如何使用设计模式?如何使用设计模式?如何使用设计模式?主要内容主要内容一、模拟鸭子应用一、模拟鸭子应用背景背景 方法方法 问题问题 (一一)(二二)(三三)l模拟
2、鸭子游戏模拟鸭子游戏模拟鸭子游戏模拟鸭子游戏SimUDuckSimUDuck:各种鸭子各种鸭子各种鸭子各种鸭子一边游泳戏水,一边呱呱叫一边游泳戏水,一边呱呱叫一边游泳戏水,一边呱呱叫一边游泳戏水,一边呱呱叫(一一)背景背景(二二)方法方法(二二)方法方法l现在,让鸭子飞起来现在,让鸭子飞起来现在,让鸭子飞起来现在,让鸭子飞起来(二二)方法方法lIts easy.Its easy.(二二)方法方法l这时,问题出现了这时,问题出现了这时,问题出现了这时,问题出现了(三三)问题问题(三三)问题问题l简单的使用继承,结局并不完美。简单的使用继承,结局并不完美。简单的使用继承,结局并不完美。简单的使用继
3、承,结局并不完美。(三三)问题问题我们应该怎么做呢?我们应该怎么做呢?我们应该怎么做呢?我们应该怎么做呢?二、继承二、继承继承继承 接口接口 问题问题 (一一)(二二)(三三)l继承如何解决上述继承如何解决上述继承如何解决上述继承如何解决上述问题呢?问题呢?问题呢?问题呢?(一一)继承继承l但是但是但是但是(一一)继承继承(一一)继承继承l在继承的同时,可在继承的同时,可在继承的同时,可在继承的同时,可以使用接口以使用接口以使用接口以使用接口(二二)接口接口(二二)接口接口l现在的设计怎么样呢?现在的设计怎么样呢?现在的设计怎么样呢?现在的设计怎么样呢?(二二)接口接口l重复的代码会变多重复的
4、代码会变多重复的代码会变多重复的代码会变多l会随着继承规模的增加会随着继承规模的增加会随着继承规模的增加会随着继承规模的增加而扩大而扩大而扩大而扩大(三三)问题问题l应该怎么样呢?应该怎么样呢?应该怎么样呢?应该怎么样呢?(三三)问题问题三、分开变化和不变部分三、分开变化和不变部分软件开发面临的问题软件开发面临的问题 如何设计如何设计 分开变化和不变部分分开变化和不变部分 (一一)(二二)(三三)(一一)软件开发面临的问题软件开发面临的问题(一一)软件开发面临的问题软件开发面临的问题l设计原则一:设计原则一:设计原则一:设计原则一:找出应用中需要变找出应用中需要变找出应用中需要变找出应用中需要
5、变化之处,把它们独化之处,把它们独化之处,把它们独化之处,把它们独立出来,不要和那立出来,不要和那立出来,不要和那立出来,不要和那些不需要变化的代些不需要变化的代些不需要变化的代些不需要变化的代码混在一起。码混在一起。码混在一起。码混在一起。(二二)如何设计如何设计l结果:结果:结果:结果:代码改变引起的后代码改变引起的后代码改变引起的后代码改变引起的后果减少果减少果减少果减少系统更有弹性系统更有弹性系统更有弹性系统更有弹性(二二)如何设计如何设计l取出易于变化的部分取出易于变化的部分取出易于变化的部分取出易于变化的部分(三三)分开变化和不变部分分开变化和不变部分(三三)分开变化和不变部分分开
6、变化和不变部分四、封装行为四、封装行为设计行为设计行为 实现行为实现行为 进一步设计进一步设计 (一一)(二二)(三三)(四四)测试测试 (五五)动态行为动态行为 (六六)封装行为封装行为l设计原则二:设计原则二:设计原则二:设计原则二:针对接口编程,而不是针对接口编程,而不是针对接口编程,而不是针对接口编程,而不是针对实现编程针对实现编程针对实现编程针对实现编程(一一)设计行为设计行为l那么,鸭子的行为将放那么,鸭子的行为将放那么,鸭子的行为将放那么,鸭子的行为将放在一个类中,这样,鸭在一个类中,这样,鸭在一个类中,这样,鸭在一个类中,这样,鸭子类就不需要知道行为子类就不需要知道行为子类就不
7、需要知道行为子类就不需要知道行为的实现细节。的实现细节。的实现细节。的实现细节。(一一)设计行为设计行为l为什么不使用抽象类,为什么不使用抽象类,为什么不使用抽象类,为什么不使用抽象类,进而使用多态呢?进而使用多态呢?进而使用多态呢?进而使用多态呢?(一一)设计行为设计行为l例如:例如:例如:例如:(一一)设计行为设计行为l存在问题:存在问题:存在问题:存在问题:针对实现编程针对实现编程针对实现编程针对实现编程针对接口针对接口针对接口针对接口/超类型编程超类型编程超类型编程超类型编程(一一)设计行为设计行为l更棒的是:更棒的是:更棒的是:更棒的是:在运行时才指定具体实现的对象在运行时才指定具体
8、实现的对象在运行时才指定具体实现的对象在运行时才指定具体实现的对象(一一)设计行为设计行为l两个行为接口两个行为接口两个行为接口两个行为接口(二二)实现行为实现行为l这样的设计充分地体现了继承的优点,这样的设计充分地体现了继承的优点,这样的设计充分地体现了继承的优点,这样的设计充分地体现了继承的优点,而摒弃了其不足。而摒弃了其不足。而摒弃了其不足。而摒弃了其不足。(二二)实现行为实现行为(二二)实现行为实现行为l进行整合,使用进行整合,使用进行整合,使用进行整合,使用“委托委托委托委托”方式来处理鸭子的行为方式来处理鸭子的行为方式来处理鸭子的行为方式来处理鸭子的行为添加两个实例变量添加两个实例
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件设计模式ch1 设计模式入门 策略模式 软件设计 模式 ch1 设计 入门 策略
限制150内