設計模式系列之策略模式

一 策略模式的本質
策略模式的本質:策略模式 是一個接口多個實現類,而每種實現類會處理某一種情況
二 what
策略模式是一種行爲模式,是將每一種算法封裝到具有共同接口的獨立類中,從而可以相互替換
三 Why
優點:
1.擴展性良好
2.避免使用多重條件判斷,遵循開閉原則
3.算法可以自由切換
缺點:
1.策略會向外暴露
2.策略類會增多造成臃腫

Where:
1.一個系統需要在幾種算法中動態地選擇一種。
2.系統很多類,而區別僅僅在於行爲不同。
How
抽象策略角色這個是一個抽象的角色,通常情況下使用接口或者抽象類去實現。對比來說,就是我們的Comparator接口。
具體策略角色包裝了具體的算法和行爲。對比來說,就是實現了Comparator接口的實現一組實現類。
環境角色內部會持有一個抽象角色的引用,給客戶端調用。對比來說,就是我們的TreeSet類。說明:TreeSet內部一定會有一個策略類的一個成員變量,這樣做的目的在於可以當我們在去創建TreeSet對象的時候,可以接收我們向TreeSet類中傳遞的具體的策略類。
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
總結
策略模式遵循了開閉原則,增加新的類不需要修改原有的代碼,只需實現接口或者繼承抽象類;同時策略模式也遵循了里氏替換原則,具體的策略類都有相同的接口,只要在有父類出現的地方都可以使用子類替代

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章