策略模式

策略模式:定義一系列的算法,并將每個算法封裝起來,可以使他們相互替換,讓算法獨立于使用它的客戶而獨立變化。

策略模式幾個組成組件:
1.Context:算法調用者,使用setStrategy方法靈活的選擇策略(strategy);
2.Strategy:算法的統(tǒng)一接口;
3.ConcreteStrategy: 算法的具體實現(xiàn)

策略模式.png

示例:在不同商家買蘋果
Strategy:算法接口

public interface BuyApple {


    void buyApple();

}

ConcreteStrategy:算法具體實現(xiàn)

public class Merchant1 implements BuyApple{
    @Override
    public void buyApple() {
        System.out.println("商家1買蘋果");
    }
}

public class Merchant2 implements BuyApple {
    @Override
    public void buyApple() {
        System.out.println("商家2買蘋果");
    }
}

Context:算法調用者

public class Buyer {

    BuyApple buyApple;

    public void setBuyApple(BuyApple buyApple){
        this.buyApple = buyApple;
    }

    public void merchantSelection(){
        buyApple.buyApple();
    }

    public static void main(String[] args) {
        Buyer buyer = new Buyer();
        buyer.setBuyApple(new Merchant1());
        buyer.merchantSelection();
    }

策略模式的使用場景:

針對同一類型的問題有多種處理方式,僅僅在具體實現(xiàn)上有不同的方式;
出現(xiàn)同一抽象類有多個子類,而又需要使用 if-else 或者 switch-case 來選擇具體子類時。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內容