策略
(Strategy)
模式:定義一系列的算法
,
把它們一個個封裝起來
,
并且使它們可相互替換。本模式使得算法可獨立于使用它的客戶而變化。
適用性:
-
許多相關(guān)的類僅僅是行為有異。“策略”提供了一種用多個行為中的一個行為來配置一個類的方法。
-
需要使用一個算法的不同變體。例如,你可能會定義一些反映不同的空間/時間權(quán)衡的算法。當(dāng)這些變體實現(xiàn)為一個算法的類層次時,可以使用策略模式。
-
算法使用客戶不應(yīng)該知道的數(shù)據(jù)。可使用策略模式以避免暴露復(fù)雜的、與算法相關(guān)的數(shù)據(jù)結(jié)構(gòu)。
-
一個類定義了多種行為, 并且這些行為在這個類的操作中以多個條件語句的形式出現(xiàn)。將相關(guān)的條件分支移入它們各自的Strategy類中以代替這些條件語句。
Java中的很多類庫都用到本模式,例子就不舉了.
參考資料:《設(shè)計模式速查手冊》