隨筆-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)  編輯  收藏

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


          網站導航:
           
          主站蜘蛛池模板: 荔浦县| 固原市| 抚宁县| 台中市| 伊宁市| 通海县| 广饶县| 紫阳县| 虹口区| 无为县| 原阳县| 台湾省| 托克托县| 炉霍县| 合阳县| 基隆市| 晴隆县| 类乌齐县| 顺义区| 克什克腾旗| 集安市| 孟连| 蓝田县| 郑州市| 苏尼特右旗| 辉南县| 兰坪| 江达县| 樟树市| 石泉县| 余姚市| 西藏| 逊克县| 仁寿县| 隆尧县| 莒南县| 新宁县| 赤水市| 仁布县| 海晏县| 孟连|