初識策略設計模式
什麼是策略設計模式:
它定義了演算法家庭,將其分別封裝起來,讓它們之間可以互相替換,通過此設計模式讓演算法的變化,不會影響到使用演算法的客戶。
核心思想:
把演算法提取出來放到一個獨立的物件中,使用策略模式修改之後,程式碼的可讀性和擴充套件性都有了很大的提高。
好了,廢話不多說,就先簡單的介紹到這裡,接下來用一個簡單的案例來看一下這種模式,程式碼如下:
一、首先定義一個策略介面:
public interface MathUtil {
int getNum(int a, int b);
}
二、然後定義兩個子類都實現了上述介面
這個類用於實現加法計算:
public class AddMethod implements MathUtil {
@Override
public int getNum(int a, int b) {
return a + b;
}
}
這個類用於實現減法計算:
public class MinusMethod implements MathUtil {
@Override
public int getNum(int a, int b) {
return a - b;
}
}
三、寫上一個演算法的集合類
public class Count {
public int getResult(int[] num, MathUtil util) {
return util.getNum(num[0], num[1]);
}
}
四、最後,測試程式碼在呼叫getResult方法時,只需要顯示地指明需要使用哪一個策略物件就可以了:
public class Test {
public static void main(String[] args) {
Count count = new Count();
int a = count.getResult(new int[] { 8, 4 }, new AddMethod());
int b = count.getResult(new int[] { 9, 4 }, new MinusMethod());
System.out.println(a);
System.out.println(b);
}
}
本人菜鳥一隻,如果哪裡有寫的不對的地方,希望大牛們指出來,我會修正的,謝謝~~~
相關文章
- 設計模式——策略模式設計模式
- 設計模式(策略模式)設計模式
- 設計模式-策略模式設計模式
- 設計模式🔫---策略模式設計模式
- 設計模式之策略模式設計模式
- js設計模式--策略模式JS設計模式
- 小白設計模式:策略模式設計模式
- 設計模式之【策略模式】設計模式
- 設計模式(一) 策略模式設計模式
- php設計模式–策略模式PHP設計模式
- 設計模式(八)——策略模式設計模式
- 設計模式(四):策略模式設計模式
- 設計模式-策略模式(轉)設計模式
- 【設計模式之策略模式】設計模式
- 23種設計模式(二)---策略設計模式設計模式
- javascript 策略設計模式JavaScript設計模式
- 設計模式 #5 (策略模式、代理模式)設計模式
- PHP 設計模式之策略模式PHP設計模式
- 設計模式(一) 支付策略模式設計模式
- JavaScript 設計模式之策略模式JavaScript設計模式
- 設計模式專題-策略模式設計模式
- Javascript設計模式之策略模式JavaScript設計模式
- JAVA設計模式之策略模式Java設計模式
- 略懂設計模式之策略模式設計模式
- Javascript設計模式(四)策略模式JavaScript設計模式
- JS設計模式六:策略模式JS設計模式
- PHP設計模式(3)—— 策略模式PHP設計模式
- 極簡設計模式-策略模式設計模式
- GoLang設計模式15 - 策略模式Golang設計模式
- Java設計模式-策略模式分析Java設計模式
- 設計模式-策略模式(strategy pattern)設計模式
- Python設計模式-策略模式Python設計模式
- 設計模式系列之「策略模式」設計模式
- 設計模式——13策略模式(strategy)設計模式
- 【大話設計模式】——策略模式設計模式
- 設計模式(六)策略模式Strategy設計模式
- Java設計模式6:策略模式Java設計模式
- 【設計模式】漢堡中的設計模式——策略模式設計模式