- 策略模式:定义了算法族,分别封装起来,让它们之间可以相互替换
- 让算法的变化独立于使用算法的客户
- 鸭子的例子:QuackBehavoir,FlyBehavior接口,含有quack(),fly(),FlyWithWings,FlyNoWay,Quack,Queek等分别实现接口
- 鸭子作为抽象类,同时组合了QuackBehavior和FlyBehavior两个接口对象
- 不同的鸭子继承鸭子类,把接口初始化为需要的接口,如quackBehavior=new Quack();
- performQuack()方法中quackBehavior.quack()会根据实际情况决定调用哪个的方法。
- 可以在过程中用set随时改变鸭子行为