1,策略模式定義

策略模式定義了一系列的算法,并將每一個(gè)算法封裝起來,而且使它們還可以相互替換。策略模式讓算法獨(dú)立于使用它的客戶而獨(dú)立變化。

策略模式的組成: 

—抽象策略角色: 策略類,通常由一個(gè)接口或者抽象類實(shí)現(xiàn)。 

—具體策略角色:包裝了相關(guān)的算法和行為。 

—環(huán)境角色:持有一個(gè)策略類的引用,最終給客戶端調(diào)用。 

2,策略模式適場(chǎng)景

 (1)多個(gè)相關(guān)的類中,僅行為不同,即一個(gè)系統(tǒng)中需要在幾個(gè)不同的算法中選擇時(shí)。比如中出行中,我們選擇交通方式火車、飛機(jī)、自行車、汽車等。

(2)一個(gè)算法的不同變體時(shí)。比如一個(gè)收取暖費(fèi)的算法,不同的收費(fèi)方式如按房屋面積、按供熱焦耳量、按面積和熱量混合法等 。

(3)不想暴露算法給使用者。比如,有一個(gè)復(fù)雜算法或算法中有相對(duì)應(yīng)的數(shù)據(jù)結(jié)構(gòu)不想讓使用者知道。

延伸閱讀

學(xué)習(xí)是年輕人改變自己的最好方式-Java培訓(xùn),做最負(fù)責(zé)任的教育,學(xué)習(xí)改變命運(yùn),軟件學(xué)習(xí),再就業(yè),大學(xué)生如何就業(yè),幫大學(xué)生找到好工作,lphotoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動(dòng)軟件開發(fā)培訓(xùn),網(wǎng)站設(shè)計(jì)培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)學(xué)習(xí)是年輕人改變自己的最好方式