C++實現(xiàn)策略(Strategy)模式
Posted on 2008-04-28 19:09 程誠成 閱讀(513) 評論(0) 編輯 收藏 引用 所屬分類: 設(shè)計模式(DesignPatten) 策略(Strategy)模式,是比較簡單的一種設(shè)計模式,但它的應(yīng)用卻隨處可見。下面模擬游戲中常用的打斗場面,來理解策略模式。在游戲中,通常有n個角色,每個角色都能發(fā)出動作:fight。每個角色都使用不同的武器,并且可以更換武器。下面是此場景簡化的C++實現(xiàn):
Strategy.h





































































































說明:
1.因為每個武器的使用方式不同,所以將使用武器的行為封裝成接口,利用此接口調(diào)用具體武器的useWeapon行為。
2.因為每個角色都有打斗,更換武器的行為,各個角色的打斗行為不同,而更換武器的行為相同,所以將setWeapon在Character中實現(xiàn),而打斗行為在各個具體的角色中實現(xiàn)。
Strategy.cpp










































































































main.cpp




































策略(Strategy)模式體現(xiàn)了2個重要的面向?qū)ο笤O(shè)計原則:
1.封裝變化。
2.針對接口編程。
參考資料:深入淺出設(shè)計模式第一章1 深入淺出設(shè)計模式第一章2