隨筆-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)
          主站蜘蛛池模板: 隆子县| 治多县| 天水市| 繁昌县| 庆安县| 吴川市| 黔西县| 上栗县| 南平市| 镇远县| 夏河县| 珲春市| 凤台县| 阿城市| 满洲里市| 达拉特旗| 赤峰市| 民勤县| 咸宁市| 龙海市| 喀喇沁旗| 北票市| 蛟河市| 林周县| 利川市| 怀安县| 云龙县| 胶州市| 巩留县| 浦城县| 自贡市| 双城市| 灌阳县| 渭南市| 突泉县| 成都市| 屏山县| 图木舒克市| 乐昌市| 宜兰市| 迁安市|