策略模式(strategy pattern)是一種行為型模式,它定義了一組演算法,將每個演算法都封裝起來,並且使它們之間可以互換。
角色說明
舉栗上下文角色(context)
用來操作策略的上下文環境,遮蔽高層模組(客戶端)對策略,演算法的直接訪問,封裝可能存在的變化;
context
抽象策略角色(strategy)
規定策略或演算法的行為;
children
具體策略角色(concretestrategy)
具體的策略或演算法實現;
brother、youngerbrother、sister
public
class
context
public
void
start()
}
public
inte***ce
children
public
class
brother
implements
children
}
public
class
youngerbrother
implements
children
}
public
class
sister
implements
children
}
public
class
client
}
哥哥把梨子吃了
弟弟把梨子吃了
妹妹把梨子吃了
優點 缺點
策略類數量增多,且所有策略類都必須對外暴露,以便客戶端能進行選擇;
23種設計模式之策略模式
定義 定義一組演算法,將每個演算法都封裝起來,並且使他們之間可以互換。型別 行為類模式 類圖 策略模式是對演算法的封裝,把一系列的演算法分別封裝到對應的類中,並且這些類實現相同的介面,相互之間可以替換。在前面說過的行為類模式中,有一種模式也是關注對演算法的封裝 模版方法模式,對照類圖可以看到,策略模...
23種設計模式之 策略模式
策略模式也叫政策模式,它是將定義的演算法家族,分別封裝起來,讓他們之間可以相互替換,從而讓演算法的變化不會影響到使用演算法的使用者。public inte ce strategy public class contentstrategya implements strategy public cla...
23種設計模式 委派模式 策略模式
精簡程式邏輯,便於閱讀 其基本作用是負責任務的排程和分配任務,和 模式很像,可以看做是一種特殊情況下的靜態 的全權 但是 模式注重過程,但是委派模式注重結果。是一種行為型模式。一般delegate,dispatcher結尾的都是委派 老闆叫經理幹活,經理通過不同的內容叫不同的員工去做事情 首先定義介...