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

          1.策略模式-Strategy

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

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


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




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


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


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

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

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


          網站導航:
           
          主站蜘蛛池模板: 仪陇县| 盐边县| 金昌市| 贞丰县| 会泽县| 东海县| 车致| 搜索| 壶关县| 阳新县| 灵武市| 宿州市| 北海市| 志丹县| 曲阳县| 敦化市| 钟山县| 措勤县| 五大连池市| 临夏县| 融水| 曲沃县| 灵璧县| 昌平区| 巴里| 双江| 台南县| 克拉玛依市| 嘉义县| 建宁县| 噶尔县| 桐庐县| 井研县| 四子王旗| 额济纳旗| 开远市| 井陉县| 淳安县| 永安市| 招远市| 清镇市|