设计模式2策略模式3个设计原则.pptVIP

  • 7
  • 0
  • 约小于1千字
  • 约 15页
  • 2016-12-24 发布于重庆
  • 举报
设计模式-策略模式 问题 模拟鸭子游戏 问题 想让鸭子会飞 但是 橡皮鸭不会飞 木头假鸭不会飞也不会叫 怎么办? 覆盖quack方法 覆盖fly方法 可见利用继承并不顺利 代码在多个子类中重复(多次覆盖) 运行时的行为不容易改变 很难知道所有鸭子的全部行为 改变会牵一发动全身,造成其它鸭子不想要的改变 面对不断的变化,利用接口如何 这个方案并不好 重复的代码会变多 需要为每个子类稍微修改一下飞行的行为 设计原则一 找出应用中可能需要变化之处 把它们独立出来 不要和那些不需要变化的代码混在一起 由于Duck类中的Fly()和Quack()会随着鸭子的不同而改变 将它们从中取出来,建立一组新类来代表每个行为 设计原则二 针对接口编程,而不是针对实现编程 重新组装 在Duck类中加入两个类型为行为接口的实例变量 用两个方法performFly() , performQuack()取代Fly和quack 看看鸭子的子类 Public class MallardDuck extends Duck{ public MallardDuck() { quckBehavior =new Quack(); flyBehavior =new FlyWithWings(); } } 现在来动态设定行为 在Duck类中,加入两个新方法 Public void setFlyBehavior

文档评论(0)

1亿VIP精品文档

相关文档