Strategy--定義一系列的算法,把它們一個個封裝起來,并且使它們可相互替換。本模式使得算法可獨立于使用它的客戶而變化。
參與者
Strategy
- -- 定義所有支持的算法的公共接口。Context使用這個接口來調用某ConcreteStrategy定義的算法。
ConcreteStrategy(具體策略)
- -- 以Strategy接口實現英雄模范具體算法。
Context(上下文)
- --用一個ConcreteStrategy對象來配置。
- --可定義一個接口來讓Strategy訪問它的數據。
適用性
- 當存在以下情況時使用Strategy模式
- 許多相關的類僅僅是行為有異。“策略”提供了一種用多個行為中的一個行為來配置一個類的方法。
- 需要使用一個算法的不同變體。
- 算法使用了客戶不應該知道的數據??墒褂貌呗阅J揭员苊獗┞稄碗s的、與算法相關的數據結構。
posted on 2008-01-23 10:52
Sam Wang 閱讀(298)
評論(2) 編輯 收藏 所屬分類:
UML