C#
Design Pattern
C# 策略模式 (Strategy)
2019/11/20 18:12:31
0
2628
C# 策略模式 (Strategy)
前言
由於專案上有用到一些計算方式。
所以用一個簡單的Demo專案,來介紹下原理及實做。
何謂策略模式
維基的定義:
策略模式作爲一種軟體設計模式,指對象有某個行爲,但是在不同的場景中,該行爲有不同的實現算法。比如每個人都要「交個人所得稅」,但是「在美國交個人所得稅」和「在中國交個人所得稅」就有不同的算稅方法。
策略模式:
· 定義了一族算法(業務規則);
· 封裝了每個算法;
· 這族的算法可互換代替(interchangeable)。
這裡,用更簡單的計算機方式來說明。
1、 建立介面IStrategy.cs
2、 建立服務:Strategy.cs,實做加、減、乘、除
加法:
減法:
乘法:
除法:
3、 用簡單工廠模式,建立 class Calculator
這裡建立了一個enum DoType
4、 利用NUnitTest單元測試,來驗證所寫的程式是否有效
驗證加法:
驗證減法:
驗證乘法:
驗證除法:
5、 執行測試,測試結果如下圖
由此可證策略模式是的確可行,並能應用在專案中。
自然,專案中用的算式更複雜,這個Demo只是為了讓工程師們能更快的理解程式是為何要這樣設計的。
GitHub:https://github.com/pceagle1/StrategyDemo
參考資料:
維基:https://zh.wikipedia.org/wiki/%E7%AD%96%E7%95%A5%E6%A8%A1%E5%BC%8F