Posted on 2008-07-19 14:53
sailor 閱讀(135)
評論(0) 編輯 收藏 所屬分類:
模式
定義:定義了算法族,分別封裝起來,讓他們之間可以相互交換,此模擬算法的變化獨立于使用算法的客戶。
設計原則:
1、多用組合,少用繼承;
2、針對接口編程,而不是針對實現編程;
實現:
Context(應用場景):
l 需要使用ConcreteStrategy提供的算法。
l 內部維護一個Strategy的實例。
l 負責動態設置運行時Strategy具體的實現算法。
l 負責跟Strategy之間的交互和數據傳遞。
Strategy(抽象策略類):
l 定義了一個公共接口,各種不同的算法以不同的方式實現這個接口,Context使用這個接口調用不同的算法,一般使用接口或抽象類實現。
ConcreteStrategy(具體策略類):
l 實現了Strategy定義的接口,提供具體的算法實現。
參考資料:《Head First設計模式》
《鴨子-策略模式(Strategy)》