初識策略設計模式
什麼是策略設計模式:
它定義了演算法家庭,將其分別封裝起來,讓它們之間可以互相替換,通過此設計模式讓演算法的變化,不會影響到使用演算法的客戶。
核心思想:
把演算法提取出來放到一個獨立的物件中,使用策略模式修改之後,程式碼的可讀性和擴充套件性都有了很大的提高。
好了,廢話不多說,就先簡單的介紹到這裡,接下來用一個簡單的案例來看一下這種模式,程式碼如下:
一、首先定義一個策略介面:
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設計模式
- 23種設計模式(二)---策略設計模式設計模式
- 設計模式 #5 (策略模式、代理模式)設計模式
- GoLang設計模式15 - 策略模式Golang設計模式
- 略懂設計模式之策略模式設計模式
- 《Head First 設計模式》:策略模式設計模式
- PHP 設計模式之策略模式PHP設計模式
- python設計模式之策略模式Python設計模式
- 極簡設計模式-策略模式設計模式
- Java設計模式-策略模式分析Java設計模式
- JavaScript 設計模式之策略模式JavaScript設計模式
- 設計模式專題-策略模式設計模式
- 設計模式(一) 支付策略模式設計模式
- Javascript設計模式之策略模式JavaScript設計模式
- JAVA設計模式之策略模式Java設計模式
- Javascript設計模式(四)策略模式JavaScript設計模式
- PHP設計模式(3)—— 策略模式PHP設計模式
- JS設計模式六:策略模式JS設計模式
- 【設計模式】漢堡中的設計模式——策略模式設計模式
- c/c++設計模式---策略模式C++設計模式
- Java設計模式之策略模式示例Java設計模式
- 細品 javascript 設計模式(策略模式)JavaScript設計模式
- Java設計模式之(十四)——策略模式Java設計模式
- 設計模式第二講--策略模式設計模式
- Head First 設計模式(1)-----策略模式設計模式
- 設計模式漫談之策略模式設計模式
- javascript設計模式 之 2 策略模式JavaScript設計模式
- 1/24 設計模式之策略設計模式 Strategy Pattern設計模式
- 初識shell程式設計程式設計
- 【java設計模式】(7)---策略模式(案例解析)Java設計模式
- 二十三種設計模式:策略模式設計模式