策略模式-Strategy

策略模式:定義一系列的算法,把它們一個個封裝起來,並且使它們可相互替換。本模式使得算法可獨立於使用它的客戶而變化。


    1.許多相關的類僅僅是行爲有異。“策略”提供了一種用多個行爲中的一個行爲來配置一個類的方法。

 

    2.需要使用一個算法的不同變體。

 

    3.算法使用客戶不應該知道的數據。可使用策略模式以避免暴露覆雜的、與算法相關的數據結構。

 

    4.一個類定義了多種行爲,並且這些行爲在這個類的操作中以多個條件語句的形式出現。
      將相關的條件分支移入它們各自的Strategy類中以代替這些條件語句。

 

接口(或抽象類):
public abstract class Strategy {
    public abstract void method();
}


public class StrategyImplA extends Strategy {
    public void method() {
        System.out.println("這是第一個實現");
    }
}


public class StrategyImplB extends Strategy {
    public void method() {
        System.out.println("這是第二個實現");
    }
}

 


public class Context {

    Strategy stra;
    public Context(Strategy stra) {
        this.stra = stra;
    }
    public void doMethod() {
        stra.method();
    }
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章