Strategy:找出變化的部分獨立出來進(jìn)行封裝,對象行為型模式新娜。
策略模式定義了算法簇,分別封裝起來既绩,讓他們相互可以替換概龄,可以使算法的變化獨立與算法的客戶。
OO基礎(chǔ):抽象 封裝 多態(tài) 繼承
OO設(shè)計原則:
1.找出應(yīng)用中可能變化的部分獨立出來饲握,不要和那些不需要變化的代碼混在一起私杜。
2.針對接口編程,不是針對實現(xiàn)編程救欧。
3.盡量用組合衰粹,少用繼承。
Duck例子:
public abstract class Duck?{
? FlyBehavior flyBehavior笆怠;//為行為接口類型聲明應(yīng)用變量
? public void display()铝耻;
? public void performFly(){?//委托行為類
???? flyBehavior.fly();
? }
? public void setFlyBehavior(){}// 設(shè)定鴨子的行為類
}
public interface FlyBehavior{?//行為類接口
? public void fly();
}
public class FlyWithWings(){//實現(xiàn)具體的行為
? public void fly(){
?? system.out.println("");
?? }
}
public class MallardDuck extend Duck{ //具體鴨子類
public MallardDuck(){
? flyBehavior = new FlyWithWings();
}
}