策略模式

有許多種不同的鴨子:mallardDuck, ModelDuck, RubberDuck..................

問題來了:各種不同的鴨子,有的會飛而有的不會飛,比如塑料模型鴨子ModelDuck就不會飛,還有個問題是不同的鴨子叫聲也不相同,有的叫聲是“呱 呱 叫”,有的是“吱 吱 叫”,或“叫不出聲”。


這裏使用策略設計模式:

策略模式:定義算法族,分別封裝起來,讓他們之間可以互相替換,此模式讓算法的變化獨立於使用算法的客戶。

1:分開變化和不會變化的部分

2:“有一個” 可能比 “是一個” 更好(多用組合,少用繼承)

如你所見,使用組合建立系統具有很大的彈性, 不僅可將算法族封裝成類, 更可以“在運行是動態地改變行爲”, 只要組合的行爲對象符合正確的接口標準即可。


發佈了23 篇原創文章 · 獲贊 9 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章