思想: 将某个行为抽离成行为策略接口, 其实现类表示此行为有多种策略方式;


  • 鸭子案例
  1. 野鸭, 饲养鸭, 玩具鸭;
  2. 每个品种的鸭子对游泳这个行为有不同的表现;
  3. 野鸭游泳很厉害, 饲养鸭游泳一般, 玩具鸭不能自己游泳;

  • 未使用策略模式
  1. 23种设计模式 VOL.22: 策略模式
  2. 继承鸭子后, 子类鸭子都能获得其鸭子的行为, 而饲养鸭和玩具鸭不能具备飞行功能, 因此还要重写(违背了里氏替换原则);

  • 使用策略模式
  1. 23种设计模式 VOL.22: 策略模式
  2. 23种设计模式 VOL.22: 策略模式  23种设计模式 VOL.22: 策略模式

  • Java中用到的地方
  1. Arrays.sort排序(data, comparator)23种设计模式 VOL.22: 策略模式

相关文章: