策略模式定義了一系列演算法,並將每個演算法封裝起來,使他們可以相互替換,且演算法的變化不會影響到使用演算法的客戶
許多相關的類僅僅是行為有異。"策略"提供了一種用多個行為中的乙個行為來配置乙個類的方法
需要使用乙個演算法的不同變體
演算法使用客戶不應該知道的資料。可使用策略模式以避免暴露複雜的、與演算法相關的資料結構
乙個類定義了多種行為,並且這些行為在這個類的操作中以多個條件語句的形式出現。將相關的條件分支移入它們各自的strategy類中以代替這些條件語句
public
abstract
class
strategy
public
class
strategyimpla
extends
strategy
}public
class
strategyimplb
extends
strategy
}public
class
strategyimplc
extends
strategy
}public
class
context
public
void
domethod()
}public
class
test
}// 輸出
// 這是第乙個實現
// 這是第二個實現
// 這是第三個實現
Erlang與OO設計模式strategy模式
以前看過head first design patterns覺得是個不錯的書,學習了一點設計模式,現在弄erlang了,十分想兩者結合對比著看看,不為別的,體會兩者之間的區別跟聯絡,看看世界到底是oo的,還是functional的 d 由於我並沒有什麼真正oo的程式設計經驗,難免錯誤很多,大家批判著...
設計模式 策略設計模式
策略設計模式其實就是多型的使用,父類引用指向子類物件。策略模式的最大特點是使得演算法可以在不影響客戶端的情況下發生變化,從而改變不同的功能。策略模式的缺點其實也很明顯,在於策略模式把每一種具體的策略都封裝成乙個實現類,如果策略有很多的話,很顯然是實現類就會導致過多,顯得臃腫。案列 author de...
設計模式 策略模式
策略模式是一種定義一系列演算法的方法,從概念上來看,所有這些方法完成的都是相同的工作,只是實現不同,他們可以用相同的方式呼叫所有的演算法,減少了演算法類和使用演算法類之間的耦合.優點 策略模式的strategy類層次為context定義了一系列可供重用的演算法和行為,繼承有助於吸取這些演算法中的公共...