策略模式定義:定義算法簇,客戶使用的只是算法的定義,與實現獨立。
我的理解:
某些類有很多公用的方法,有些方法是一樣的,有些需要覆蓋重寫。可以把不變的東西放在父類中,變化的部分抽取出來,單獨實現,父類中只引用接口,與真正的實現無關。這就是策略模式。
簡要膽碼:J2EELib中
代碼概要:
public abstract class Duck {
private FlyInterface flyInterface=null;
public Duck(FlyInterface flyInterface) {
this.flyInterface=flyInterface;
}
public void fly() {
flyInterface.fly();
}
}