策略模式詳解

2021-09-10 03:38:01 字數 536 閱讀 9169

策略模式核心點: 把每個核心方法邏輯抽象封裝出來,使得程式呼叫結構更加靈活和擴充套件。典型應用就是用來替換程式中過多的if else分支結構。

當程式邏輯分支很多時,我們會選擇if else語句或switch case語句來切分,但是這樣的結果往往是程式難以維護,例如下面一段**,是根據**包pricecode來區分給使用者贈送哪些權益型別:

可以看到,乙個充值方法裡包含了多個if else語句,裡面還夾雜著複雜邏輯,使得方法龐雜,**難以維護。根據策略模式的思想優化後:

通過chargecontext這個上下文類對充值邏輯所屬物件進行靈活注入,而具體的充值演算法排程交給了呼叫方,利於維護,後續有其他演算法也可以靈活的擴充套件,但是缺點也是比較明顯的,就是引入了很多類,容易引起程式結構類數量**,所以還是要根據你的具體情況靈活取捨。

PHP 策略模式詳解

策略模式可用來建立可插入,可替換以及可重用的元件。其實說簡單一點,就是父類為抽象類,子類 策略類 來具體實現方法 下面是使用了策略模式和不使用策略模式的兩段例項 的區別 lesson.php class lessons public function whichlesson user.php 客戶端...

經典案例 Python詳解設計模式 策略模式

完成一項任務往往有多種方式,我們將其稱之為策略。比如,超市做活動,如果你的購物積分滿1000,就可以按兌換現金抵用券10元,如果購買同一商品滿10件,就可以打9折,如果如果購買的金額超過500,就可以享受滿減50元的優惠。這是三個不同的 策略。再比如,去外出旅遊,我們可以選擇火車,也可以選擇公共汽車...

php設計模式之策略模式應用案例詳解

策略程式設計客棧模式 定義 策略模式定義一系列的演算法,將每個演算法封裝起來,並讓它們可以相互裝換。策略模式讓演算法獨立於使用它的客戶而獨立變化。角色分析 應用場景 實現 created by phpstorm.author zhaorui date 2019 2 27 time 10 55 hea...