Head First设计模式-策略模式
一、整体代码
Duck.java
public class MuteQuack implements QuackBehavior { public void quack() { System.out.println("<< Silence >>"); }}
1、什么时候用策略模式
答:当一个接口在不同类中有着不同的实现时,考虑用策略模式。
2、Squeak.java代码可以复用。如果只在一个类中实现QuackBehavior,那么另一个类如果要实现,则可以复用Squeak.java代码。
3、OO原则:封装变化(算法是变化的),多用组合,少用继承,针对接口编程,而不是针对对象编程。
4、策略模式:定义算法族,分别封装起来,让他们可以相互替换,此模式让算法变化独立于算法客户。