1. 定義
- 定義一系列算法,将每一個算法都封裝起來(政策),并且它們可以互相替換。使得算法可以獨立于使用它的客戶而變化
- 把一個系列的算法封裝到一系列的政策類裡面,我們給環境配置設定不同的政策則就按照不同的算法來執行
2. 組成
- 環境類(Context):維護了一個抽象政策類的引用。
- 抽象政策類(Strategy):定義所有支援的算法的公共接口。環境類就是通過這個接口引用來調用某個具體政策類執行個體定義的算法。
- 具體政策類(ConcreteStrategy):以抽象政策類接口實作某寫具體算法
3. 應用
- java中比較器就是一種政策模式,根據傳入的比較器不同而實作不同的排序規則
- Spring中定義的資源通路接口Resource也是一種政策模式
4. 優點
- 擴充性良好
- 政策可以自由切換
- 避免了使用多重條件判斷
