策略模式:定义了算法族,分别封装起来,让它们之间可以互相替换,
此模式让算法的变化独立于使用算法的客户。
实例解析:
一款模拟鸭子的游戏,游戏中会出现各种鸭子,一边游泳戏水,一边呱呱叫。设计如下所示:
//主函数代码
public class main {
public static void main(String[] args) {
Duck mallard = new MallardDuck();
mallard.performQuack();
mallard.performFly();
}
}
设计原则
- 找出应用中可能需要变化之处,把它们独立出来,不要和那些不需要变化的代码混在一起。(飞和叫的行为)
- 针对接口编程,而不是针对实现编程。(飞和叫的行为的接口)
- 多用组合,少用继承。(飞和叫两个分离开来)