設計模式02 策略模式

2021-08-19 07:11:53 字數 537 閱讀 2245

場景1

人旅行,set不同的策略實現類,採用對應實現類裡的旅行策略辦法;eg:飛機策略實現類裡的策略方法,乘坐飛機旅行;

場景21、如果在乙個系統裡面有許多類,它們之間的區別僅在於它們的行為,那麼使用策略模式可以動態地讓乙個物件在許多行            為中選擇一種行為。

2、乙個系統需要動態地在幾種演算法中選擇一種。 

3、如果乙個物件有很多的行為,如果不用恰當的模式,這些行為就只好使用多重的條件選擇語句來實現。

策略類膨脹

的問題。

封裝幾乎任何型別的規則

,只要在分析過程中聽到需要在不同時間應用不同的業務規則,就可以考慮使用策略模式處理這種可能發生的變化。

,選擇具體實現的職責也由策略使用類context來承擔。這就最大化的減輕了客戶端的職責。

不同:乙個是封裝一系列平行且複雜多變的實現方式,乙個是實現把物件的內在狀態的變化封裝起來,用外部行為來表現出來。

大話設計模式02 策略模式 2020 9 18

一 策略模式簡介 策略模式的定義一系列演算法的一種方法,這些演算法都是做相同的工作,只是實現不同。為了減少客戶端呼叫和策略演算法類的耦合性,即可使用策略模式。其主要框架如下 strategy為策略父類,有多個不同策略子類繼承於它。context類包含strategy成員,將strategy類的函式做...

設計模式python實現 02 策略模式

面對演算法時常變動 策略模式 author panky import abc class cashsuper metaclass abc.abcmeta 現金收費抽象類 abc.abstractmethod def accept cash self,money pass class cashnorm...

大話設計模式C 版本 02 策略模式

策略模式 定義了演算法家族,分別封裝起來,讓他們之間可以互相替換,此模式讓演算法的變化不會影響到用演算法的客戶。注意 與簡單工廠模式相比,使用上只需要知道 context 類即可 演算法會時常變動 用幾個類封裝了這些演算法且有共同的父類 抽象乙個演算法類class strategy 寫具體的子類cl...