Strategy:找出变化的部分独立出来进行封装,对象行为型模式。
策略模式定义了算法簇,分别封装起来,让他们相互可以替换,可以使算法的变化独立与算法的客户。
OO基础:抽象 封装 多态 继承
OO设计原则:
1.找出应用中可能变化的部分独立出来,不要和那些不需要变化的代码混在一起。
2.针对接口编程,不是针对实现编程。
3.尽量用组合,少用继承。
Duck例子:
public abstract class Duck {
FlyBehavior flyBehavior;//为行为接口类型声明应用变量
public void display();
public void performFly(){ //委托行为类
flyBehavior.fly();
}
public void setFlyBehavior(){}// 设定鸭子的行为类
}
public interface FlyBehavior{ //行为类接口
public void fly();
}
public class FlyWithWings(){//实现具体的行为
public void fly(){
system.out.println("");
}
}
public class MallardDuck extend Duck{ //具体鸭子类
public MallardDuck(){
flyBehavior = new FlyWithWings();
}
}