strategy[ˈstrætədʒi] 策略
策略模式用於封裝系列的演算法,這些演算法通常被封裝在乙個稱為context的類中,客戶端程式可以自由的選擇任何一種演算法,或者讓context來為客戶端提供乙個最佳的演算法。說白了,使用策略模式就是為了支援演算法的自由切換。
策略模式是對演算法的包裝,是吧使用演算法的責任和演算法本身分割開來,委派給不同的物件管理。
策略模式通常把乙個系列的演算法包裝到一系列的策略類裡面,作為乙個抽象策略類的子類。
一句話來形容:準備一組演算法,並將每乙個演算法封裝起來,使得他們可以互換。
策略模式涉及到三個角色:
環境角色:持有乙個
strategy
類(策略類)的引用
抽象策略角色:策略類,通常由乙個介面或者抽象類實現
**如下:
//顯示客戶端 根據不同的策略選擇 會有不能的實現演算法來處理邏輯
public class strategy
public double getdiscountprice(double price)
return this.strategy.getdiscount(price);
}public static void main(string args)
}//演算法的介面
inte***ce discountstrategy
//下面幾個是演算法介面的實現 要是增加乙個演算法就增加乙個實現就好 還是比較方便的
大話設計模式 策略模式
前言 做事情的時候我們需要動動腦來簡化自己完成任務的負擔,這就需要講究策略了,我們會根據自己所處的環境列出所有的可能條件,再從中挑選合適的方法來完成這件事。就像我們過年回家,我們可以選擇高鐵 普通火車 還可以選擇硬座 軟座 臥鋪,這都是我們回家的策略 買不到直達的還得轉戰好幾個火車站,策略的最終到達...
大話設計模式 策略模式
前言 做事情的時候我們需要動動腦來簡化自己完成任務的負擔,這就需要講究策略了,我們會根據自己所處的環境列出所有的可能條件,再從中挑選合適的方法來完成這件事。就像我們過年回家,我們可以選擇高鐵 普通火車 還可以選擇硬座 軟座 臥鋪,這都是我們回家的策略 買不到直達的還得轉戰好幾個火車站,策略的最終到達...
大話設計模式 策略模式
上篇文章 大話設計模式 簡單工廠模式告訴了我們乙個網咖收費工廠物件怎樣建立收費形式 白天收費 夜間收費 的例項。簡單工廠 中有非常多 case分支語句 假設我們還想填加收費的形式 比方會員收費啊,通宵收費啊 就須要修改工廠 每次維護和擴充套件都要花費非常多時間,另外修改非常easy造成紕漏 比方之前...