Strategy模式

          Posted on 2007-11-21 15:35 game of programming 閱讀(442) 評論(1)  編輯  收藏 所屬分類: Design Pattern

          《設計模式》中是這樣描述Strategy模式的:定義一系列算法,把它們一個個封裝起來,并且使它們可相互替換。Strategy模式使算法可以獨立于使用它的客戶的變化。
          Strategy模式的UML圖如下所示:

          從上圖可以看出,具體的算法隱藏在AbstractStrategy類背后,Client無需知道具體算法如何實現,它只需傳給Context相關參數即可。在Context中來實現具體算法的選擇(通過Client傳來的參數)。而算法的具體實現則通過ConcreteStrategy來完成。
          這樣做有以下幾個好處:
          1 算法的選擇與實現相分離。符合“找出變化并封裝之”的原則。如果需要修改或者添加新的算法,只需要修改相對應的ConcreteStrategy或者增加新的ConcreteStrategy并且修改算法的選擇即可。
          2 Client無需關心算法如何選擇和具體實現,只需關心結果。

          Feedback

          # 太難懂了  回復  更多評論   

          2009-01-08 21:21 by 太難懂了
          太難懂了

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           

          posts - 2, comments - 1, trackbacks - 0, articles - 5

          Copyright © game of programming

          主站蜘蛛池模板: 罗源县| 阳江市| 正安县| 杭锦后旗| 子洲县| 阿尔山市| 岑巩县| 永清县| 保康县| 永德县| 通海县| 剑川县| 盈江县| 岑溪市| 和林格尔县| 南召县| 泌阳县| 浮梁县| 彭泽县| 东丽区| 延庆县| 平昌县| 武隆县| 沾化县| 中超| 察雅县| 诏安县| 凉城县| 武宣县| 湖口县| 深水埗区| 霍城县| 治县。| 怀来县| 山东省| 陆良县| 板桥市| 阜平县| 郓城县| 大埔县| 桑日县|