淺談策略模式(strategy)
版權宣告:本文為博主原創文章,未經博主允許不得轉載。 https://blog.csdn.net/u010741376/article/details/45969195
策略模式定義了一系列演算法,並將每個演算法封裝起來,使他們可以相互替換,且演算法的變化不會影響到使用演算法的客戶。需要設計一個介面,為一系列實現類提供統一的方法,多個實現類實現該介面,設計一個抽象類(可有可無,屬於輔助類),提供輔助函式,關係圖如下:
—-例項實現
定義介面:
public interface ICalculator {
public int calculate(String exp);
}
輔助類:
public class AbstractCalculator {
public int[] split(String exp,String opt){
String array[]=exp.split(opt);
int arrayint[]=new int[2];
arrayint[0]=Integer.parseInt(array[0]);
arrayint[1]=Integer.parseInt(array[1]);
return arrayint;
}
}
三個實現類:
public class Plus extends AbstractCalculator implements ICalculator {
@Override
public int calculate(String exp) {
int arrayint[]=split(exp, "\+");
return arrayint[0]+arrayint[1];
}
}
public class Minus extends AbstractCalculator implements ICalculator {
@Override
public int calculate(String exp) {
int arrayint[]=split(exp, "-");
return arrayint[0]-arrayint[1];
}
}
public class Multiply extends AbstractCalculator implements ICalculator {
@Override
public int calculate(String exp) {
int arrayint[]=split(exp, "\*");
return arrayint[0]*arrayint[1];
}
}
測試類:
public class StrategyTest {
public static void main(String[] args) {
String exp="2+8";
ICalculator cal=new Plus();
int result=cal.calculate(exp);
System.out.println(result);
}
}
相關文章
- 策略模式(Strategy)模式
- 策略模式【Strategy Pattern】模式
- 設計模式-策略模式(strategy pattern)設計模式
- 設計模式——13策略模式(strategy)設計模式
- 設計模式(六)策略模式Strategy設計模式
- 06_Strategy Pattern 策略模式模式
- Java設計模式之策略模式(Strategy)Java設計模式
- 設計模式筆記:策略模式(Strategy)設計模式筆記
- (Boolan)C++設計模式 ——策略模式(Strategy)C++設計模式
- 設計模式--策略模式Strategy(行為型)設計模式
- 設計模式的征途—18.策略(Strategy)模式設計模式
- 【雜談】策略模式模式
- 【設計模式基礎】行為模式 - 5 - 策略(Strategy)設計模式
- 淺談線上廣告分配策略
- 1/24 設計模式之策略設計模式 Strategy Pattern設計模式
- 【嵌入式c++】設計模式之策略模式(Strategy)C++設計模式
- 設計模式之策略模式和狀態模式(strategy pattern & state pattern)設計模式
- 淺談撞庫防禦策略
- 設計模式漫談之策略模式設計模式
- 淺談模板方法模式模式
- 淺談顏色模式模式
- 淺談Redis安全策略佑葉Redis
- 淺談設計模式——工廠模式設計模式
- 淺談設計模式——單例模式設計模式單例
- iOS 設計模式淺析 1 - 策略iOS設計模式
- 淺談設計模式之觀察者模式設計模式
- 淺談graphql的訂閱模式模式
- 淺談MVC/MVP/MVVM模式(概述)MVCMVPMVVM模式
- 淺談tomcat執行模式Tomcat模式
- 淺談前端MVC與MVVC模式前端MVC模式
- 淺談學習設計模式設計模式
- 淺談電商養成類遊戲選型策略遊戲
- 淺談java之設計模式(1)Java設計模式
- 淺談框架模式 MVC、MVP 和 MVVM框架模式MVCMVPMVVM
- 結合 Android 淺談 Builder 模式AndroidUI模式
- 淺談框架與模式的關係框架模式
- 淺談Oracle的受限模式(Restricted Mode)Oracle模式REST
- 【大話設計模式】——淺談設計模式基礎設計模式