策略模式的意圖是定義一系列演算法,把它們乙個乙個封裝起來,並且使它們可以互相替換。通常每個策略演算法不可抽象再分。本人仿照所給的例子,用matlab**對其進行實現
strategy.m
classdef strategy < handlemethods(abstract)
dooperation(~,~,~);
endend
operationadd.m
classdef operationadd < strategymethods
function res = dooperation(~,num1,num2)
res = num1 + num2;
endend
end
operationmultiply.m
classdef operationmultiply < strategymethods
function res = dooperation(~,num1,num2)
res = num1 * num2;
endend
end
context.m
classdef context < handleproperties
strategy
end
methods
function obj = context(strategy)
obj.strategy = strategy;
end
function res = executestrategy(obj,num1,num2)
res = obj.strategy.dooperation(num1,num2);
endend
end
測試**:
context = context(operationadd());disp("2 + 3 = " + context.executestrategy(2, 3));
context =context(operationmultiply());
disp("2 * 3 = " + context.executestrategy(2, 3));
模式 策略模式
前言 所有的設計模式都是基於程式設計屆前輩們的不斷實踐得出的解決一類問題中比較有效高效的程式設計方法。策略模式 策略模式用於解決業務中不同場景下統一行為的細微差別問題。策略模式遵循 開閉原則 舉個例子來說,在購物車功能中,結算 的時候會根據使用者的不同級別去打折,那麼打折計算 的這一行為就會有不同演...
策略模式(策略列舉)
首先定義乙個介面 package com.yecc.suanfa.strategy created by yecc on 2020 11 16 19 35 public inte ce strategy 定義三個繼承介面的類 package com.yecc.suanfa.strategy crea...
策略模式及Spring整合策略模式
抽象策略類 inte ce sortservice 具體策略類 class insertionsortserviceimpl implements sortservice else arr j 1 tmp return arr 氣泡排序 class bubblesortserviceimpl imp...