1,策略模式定義

策略模式定義了一系列的算法,并將每一個(gè)算法封裝起來(lái),而且使它們還可以相互替換。策略模式讓算法獨(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)不想讓使用者知道。

網(wǎng)友評(píng)論