23种设计模式之策略模式
生活随笔
收集整理的這篇文章主要介紹了
23种设计模式之策略模式
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
策略模式的定義
定義: 定義一組算法, 將每個算法都封裝起來, 并且使它們之間可以互換
通俗的說, 就是對一個接口下的一組算法進行封裝
其類圖如下:
?
其中三個角色說明:
策略模式的重點就是封裝角色, 它借用了代理模式的思路, 差別就是策略模式的封裝角色和被封裝的策略類不用是同一個接口, 如果是同一個接口就成了代理模式
代碼如下:
抽象的策略角色:
?
具體的策略角色:
?
封裝角色:
?
場景類:
?
策略模式的應用
策略模式的優點:
策略模式的缺點:
策略模式的使用場景:
如果系統中的一個策略家族的具體策略數量超過4個, 則需要考慮使用混合模式, 解決策略類膨脹和對外暴露的問題, 否則日后的系統維護就會成為一個燙手山芋, 誰也不想接
策略模式是一個非常常用的模式, 但它單獨使用的地方就比較少了, 因為他有致命缺陷: 所有的策略都需要暴露出去, 這樣才方便客戶端使用哪一個策略. 在實際項目中, 我們一般通過工廠方法模式來實現策略類的聲明.
總結
以上是生活随笔為你收集整理的23种设计模式之策略模式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 6大设计原则之单一职责原则
- 下一篇: Java集合之Hashtable源码分析