隨筆-31  評論-2  文章-0  trackbacks-0

          1.策略模式-Strategy

          策略模式
          是對算法的包裝,是把使用算法的責任和算法本身分割開來,委派給不同的對象管理。
          策略模式通常把一個系列的算法包裝到一系列的策略類里面,作為一個抽象策略類的子類。

          一句話來形容:準備一組算法,并將每一個算法封裝起來,使得他們可以互換


          策略模式的結(jié)構(gòu)
          策略模式涉及到三個角色:
          • 環(huán)境角色:持有一個Strategy類(策略類)的引用
          • 抽象策略角色:策略類,通常由一個接口或者抽象類實現(xiàn)
          • 具體策略角色:包裝了相關(guān)的算法和行為




          《三國演義》中的故事
          諸葛亮的精囊妙計?三條妙計
          走喬國老的后門,求孫國太放人,請孫夫人退兵
          趙云?按計行事
          環(huán)境角色:趙云?由他來決定選擇策略
          抽象策略角色:(接口)精囊妙計?按計行事(抽象方法)
          具體策略角色:三條妙計(單獨使用的)


          例子:一個策略模式的加減乘除
          抽象策略角色: (精囊妙計)? Operation抽象類(oper抽象方法)
          具體策略角色: (三條妙計)? 計算乘積,計算除法,計算加法,計算減法
          環(huán)境角色:  (趙云)?  有一個策略類( Operation )的引用


          策略模式的優(yōu)缺點:
          優(yōu)點:
          1.提供了管理相關(guān)的算法族的辦法。
          2.提供了可以替換繼承關(guān)系的辦法。
          3.避免使用多重條件轉(zhuǎn)移語句

          缺點:
          1.客戶端必須知道所有的策略類,并自行決定使用哪一個策略類。
          2.造成很多的策略類。
          posted on 2009-08-04 12:21 xiaoxinchen 閱讀(237) 評論(0)  編輯  收藏

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


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 宝坻区| 英吉沙县| 汉沽区| 金溪县| 小金县| 修水县| 长武县| 清徐县| 新化县| 衡山县| 龙门县| 汶川县| 纳雍县| 德保县| 正安县| 长宁县| 衡阳县| 德化县| 泽州县| 民勤县| 富民县| 蒙城县| 三江| 宜宾县| 通城县| 武宁县| 伊宁县| 阳新县| 乌拉特前旗| 阳原县| 望城县| 榆林市| 乐陵市| 改则县| 邵武市| 陆河县| 东乡族自治县| 郁南县| 商城县| 紫金县| 新郑市|