设计模式入门 - 策略模式-精品·公开课件.pptVIP

  • 3
  • 0
  • 约1.79千字
  • 约 68页
  • 2018-11-04 发布于广西
  • 举报

设计模式入门 - 策略模式-精品·公开课件.ppt

模拟鸭子游戏SimUDuck: 各种鸭子 一边游泳戏水,一边呱呱叫 现在,让鸭子飞起来 It’s easy. 这时,问题出现了 简单的使用继承,结局并不完美。 继承如何解决上述问题呢? 但是 在继承的同时,可以使用接口 现在的设计怎么样呢? 重复的代码会变多 会随着继承规模的增加而扩大 应该怎么样呢? 设计原则一: 找出应用中需要变化之处,把它们独立出来,不要和那些不需要变化的代码混在一起。 结果: 代码改变引起的后果减少 系统更有弹性 取出易于变化的部分 设计原则二: 针对接口编程,而不是针对实现编程 那么,鸭子的行为将放在一个类中,这样,鸭子类就不需要知道行为的实现细节。 为什么不使用抽象类,进而使用多态呢? 例如: 存在问题: 针对实现编程 针对接口/超类型编程 更棒的是: 在运行时才指定具体实现的对象 两个行为接口 这样的设计充分地体现了继承的优点,而摒弃了其不足。 进行整合,使用“委托”方式来处理鸭子的行为 添加两个实例变量 实现行为“委托” 如何设定行为的实例变量 那么,我们就来看看是否达到设计效果。 Duck.java FlyBehavior.java QuackBehavior.java MiniDuckSimulator.java RUN 下面,看看如何设定动态行为 在Duck类中添加2个方法 建立新类ModelDuck 建立新的行为类FlyRocketPow

文档评论(0)

1亿VIP精品文档

相关文档