Strategy模式

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

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

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

          Feedback

          # 太難懂了  回復(fù)  更多評(píng)論   

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

          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           

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

          Copyright © game of programming

          主站蜘蛛池模板: 保定市| 苗栗市| 嘉荫县| 南部县| 玉龙| 遵化市| 印江| 新宾| 吴江市| 钟山县| 栾城县| 瑞金市| 麻城市| 玛曲县| 伊宁市| 伊金霍洛旗| 大连市| 南陵县| 钟祥市| 梧州市| 鄱阳县| 重庆市| 易门县| 都江堰市| 墨竹工卡县| 于田县| 金川县| 获嘉县| 吉水县| 津南区| 仁布县| 顺昌县| 崇明县| 涞源县| 和田县| 广德县| 玉林市| 麦盖提县| 凤阳县| 兴宁市| 普安县|