隨筆-95  評論-31  文章-10  trackbacks-0
          命令模式:
          命令模式有三個角色:1、接收者。2、命令者。3、調(diào)用者
          這三個的關(guān)系是:接收者自己有方法,有屬性,有自己的行為。命令者定義為一個接口,實現(xiàn)該接口的類持有接收者類,通過構(gòu)造加載進來,同時有一個execute()方法,里面調(diào)用接收者的方法。調(diào)用者持有命令者接口,通過set方法加載進來,并有一個action()方法這里和execute()方法區(qū)分,里面調(diào)用execute()方法,所以調(diào)用者對外只暴露該action方法便可以實現(xiàn)不同的行為。實例化的過程為:
          Receive receive = new Receive();
          Command cc  = new ConcreteCommand(receive);
          Invoker ik = new Invoker();
          ik.setCommand(cc);
          ik.action();//這里即為調(diào)用的cc.execute()方法但是里面又調(diào)用的receiver的方法,這里就等于將調(diào)用者與接收者通過命令者解耦了,調(diào)用者不關(guān)心內(nèi)部怎么實現(xiàn),只需調(diào)用action()方法,就可以調(diào)用receive的方法,對外只暴露了一個方法。
          這個模式可以用于隊列請求,日志請求,還有struts框架的Action類也是用命令模式實現(xiàn),就寫到這里明天補充代碼。
          posted on 2010-09-06 00:21 朔望魔刃 閱讀(288) 評論(0)  編輯  收藏 所屬分類: 設(shè)計模式&&數(shù)據(jù)結(jié)構(gòu)
          主站蜘蛛池模板: 麻阳| 伊宁县| 称多县| 宣威市| 靖西县| 商河县| 龙泉市| 西充县| 怀柔区| 遵义县| 兴义市| 青龙| 苗栗县| 东辽县| 怀柔区| 和顺县| 木兰县| 齐齐哈尔市| 长寿区| 临湘市| 广丰县| 井冈山市| 嵊泗县| 盐池县| 腾冲县| 临清市| 南乐县| 库尔勒市| 阿勒泰市| 平远县| 临西县| 迭部县| 铁岭市| 古蔺县| 六枝特区| 修武县| 定陶县| 自治县| 龙胜| 玉田县| 宝坻区|