淺談策略模式(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】模式
- 06_Strategy Pattern 策略模式模式
- 【雜談】策略模式模式
- 1/24 設計模式之策略設計模式 Strategy Pattern設計模式
- 【嵌入式c++】設計模式之策略模式(Strategy)C++設計模式
- 設計模式之策略模式和狀態模式(strategy pattern & state pattern)設計模式
- 設計模式漫談之策略模式設計模式
- 淺談工廠模式模式
- 淺談設計模式——單例模式設計模式單例
- 淺談設計模式——工廠模式設計模式
- 淺談Redis安全策略佑葉Redis
- 淺談線上廣告分配策略
- 淺談tomcat執行模式Tomcat模式
- 淺談前端MVC與MVVC模式前端MVC模式
- 淺談MVC/MVP/MVVM模式(概述)MVCMVPMVVM模式
- 淺談graphql的訂閱模式模式
- 淺談java之設計模式(1)Java設計模式
- 淺談設計模式及python實現設計模式Python
- 淺談電商養成類遊戲選型策略遊戲
- 淺談23種設計模式之單例設計模式設計模式單例
- 淺談:redis的主從複製 + 哨兵模式Redis模式
- 淺談Hbase與中間的一些設計策略
- 淺淺談ReduxRedux
- 淺談Laravel中的設計模式(三) Container 容器Laravel設計模式AI
- 策略模式、策略模式與Spring的碰撞模式Spring
- Kafka分割槽分配策略(Partition Assignment Strategy)Kafka
- 策略模式模式
- 淺淺淺談JavaScript作用域JavaScript
- 淺談卡牌遊戲中的多卡養成設計策略遊戲
- iOS模式分析 策略模式iOS模式
- 設計模式(策略模式)設計模式
- 設計模式-策略模式設計模式
- PHP 模式大全 - 策略模式PHP模式
- 設計模式——策略模式設計模式
- 淺談 PromisePromise
- 淺談mockMock
- 淺談ViewModelView
- 淺談PWA