java策略模式(strategy pattern)的簡單理解

今天學習了設計模式中的策略模式,策略模式有三部分,一個抽象的類,或者是接口;一個具體的實現功能的類;

還有一個環境類。大體是這麼理解的,在第一部分中定義一個方法,當然沒有實現的,在第二部分實現這個方法,通常第二部分有許多個平行的類,這是爲了對第一部分定義的方法有不同實現;實現的總的效果就是你調用一個方法進行某一操作的時候,是調用第一部分的方法去操作的,所以具體實現的功能你說不確定的,因爲你不知道具體是誰實現了第一部分的方法;這樣一來同一個方法,隨着你傳遞的實例(即第二部分類的一個對象)不同,它實現的操作也將不同。

這麼講大家也許會覺得有點蒙,現在用代碼說明一下:

public interface  StrategyTest
{
    public int calculate(int a,int b);
}

public class AddTest implements StrategyTest
{
    public int calculate(int a, int b)
    {
        return a + b;
    }

}

public class SubTest implements StrategyTest
{
    public int calculate(int a, int b)
    {
        return a - b;
    }
}

public class Test

{

      public static void main(String []args)

     {

          // StrategyTest strategy = new AddTest();

           StrategyTest strategy = new AddTest();

           System.out.println(strategy.calculate(4,5));

          //當你執行System.out.println(strategy.calculate(4,5))的時候,你並不知道是具體的

          //執行的加法還是減法,而起決定因素的是前面你傳給接口的實例不同而改變的

          //輸出行的代碼不變的情況下,你用第一行就會是加法,第二行就會使減法

     }

}

在我這裏沒用到開篇提到的第三部分,環境類,其實我覺得我這麼理解會更簡單,那個環境類就是起一個輔助作用罷了,策略模式的思路就是這樣的,要是想實現更復雜的應用還得再進一步熟悉掌握才行。。。。


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