策略模式(Strategy Pattern)

例子: 一個遊戲中有各種鴨子,紅頭鴨,綠頭鴨等等,很自然得出這樣的設計: 這時,需求改變了(永遠不變的是改變).遊戲需要鴨子能飛起來, 在抽象的Duck類中加入一個方法fly(),是一個很自然的想法. 但是,問題出現了,一些不能飛的鴨子(比如橡皮鴨)也飛了起來.——繼承帶來的問題:牽一髮而動全身 我們可以找到一個暫時的辦法:覆蓋橡皮鴨的fly()方法,使這個方法什麼也不做。然而隨着鴨子的數量的增加
相關文章
相關標籤/搜索