對於特定的任務存在不同的演算法,但是客戶端可以在動態時間上下文中在執行時間之間切換演算法;例如:對客戶列表進行排序(氣泡排序、合併排序、快速排序)解決方案:為演算法建立乙個介面,並為演算法的每個變數使用乙個實現類。優點:易於擴充套件的新演算法實現-從客戶端上下文中分離演算法。
問題: 這裡有三個演算法,對這三個演算法使用策略的設計模式,使得這三個散發可以在客戶端隨便切換:
那麼首先我們要有個策略的介面:
有了這個介面後,那麼具體的演算法操作得去實現繼承這個介面啊,於是我們有:
這三個已經繼承這個介面了,那麼我們需要乙個切換器,去對他們進行可變的切換:
那就有了:
策略 Strategy 模式
strategy 模式也叫策略模式,是由 gof提出的 23種軟體設計模式的一種。strategy 模式是行為模式之一,它對一系列的演算法加以封裝,為所有演算法定義乙個抽象的演算法介面,並通過繼承該抽象演算法介面對所有的演算法加以封裝和實現,具體的演算法選擇交由客戶端決定 策略 strategy 模...
策略模式 Strategy
public context string strategytype df對策略模式的定義是這樣的 它定義了演算法家族,分別封裝起來,讓它們之間可以相互替換,此模式讓演算法的變化不會影響到使用演算法的客戶 main函式 abstract class strategy class concretest...
策略模式 Strategy
定義 定義一組演算法,將每個演算法都封裝起來,並且使他們之間可以互換。型別 行為類模式 結構圖 策略模式的優缺點 策略模式的主要優點有 策略模式的缺點主要有兩個 必須對客戶端 呼叫者 暴露所有的策略類,因為使用哪種策略是由客戶端來決定的,因此,客戶端應該知道有什麼策略,並且了解各種策略之間的區別,否...