首先介紹一下策略模式的定義,如果看不大懂這個專業術語定義沒關係,繼續往下看,你就會明白啦。
策略模式(strategy):它定義了演算法家族,分別封裝起來,讓它們之間可以互相替換,此模式讓演算法的變化,不會影響到使用演算法的客戶。
接下來先給大家看一下策略模式的結構圖:
context上下文,用乙個concreatestrategy來配置,維護乙個對strategy物件的引用;concretestrategya,concretestrategyb,concretestrategyc為具體策略類,封裝了具體的演算法或行為,繼承strategy。
strategy類:定義所有支援的演算法的公共介面
//抽象演算法類
abstract
class
strategy
concretestrategy,封裝了具體的演算法或行為,繼承於strategyclass
concretestrategya
:strategy
}class
concretestrategyb
:strategy
}class
concretestrategyc
:strategy
}
context,用乙個concretestrategy來配置,維護乙個對strategy物件的引用class
context
//上下文介面
public
void
contextinte***ce()
}
客戶端**static
void
main
(string
args)
接下來,給大家用乙個超市收銀系統來實現一下所謂的策略模式。 大話設計模式 策略模式
前言 做事情的時候我們需要動動腦來簡化自己完成任務的負擔,這就需要講究策略了,我們會根據自己所處的環境列出所有的可能條件,再從中挑選合適的方法來完成這件事。就像我們過年回家,我們可以選擇高鐵 普通火車 還可以選擇硬座 軟座 臥鋪,這都是我們回家的策略 買不到直達的還得轉戰好幾個火車站,策略的最終到達...
大話設計模式 策略模式
前言 做事情的時候我們需要動動腦來簡化自己完成任務的負擔,這就需要講究策略了,我們會根據自己所處的環境列出所有的可能條件,再從中挑選合適的方法來完成這件事。就像我們過年回家,我們可以選擇高鐵 普通火車 還可以選擇硬座 軟座 臥鋪,這都是我們回家的策略 買不到直達的還得轉戰好幾個火車站,策略的最終到達...
大話設計模式 策略模式
上篇文章 大話設計模式 簡單工廠模式告訴了我們乙個網咖收費工廠物件怎樣建立收費形式 白天收費 夜間收費 的例項。簡單工廠 中有非常多 case分支語句 假設我們還想填加收費的形式 比方會員收費啊,通宵收費啊 就須要修改工廠 每次維護和擴充套件都要花費非常多時間,另外修改非常easy造成紕漏 比方之前...