秋霞电影网午夜鲁丝片无码,真人h视频免费观看视频,囯产av无码片毛片一级,免费夜色私人影院在线观看,亚洲美女综合香蕉片,亚洲aⅴ天堂av在线电影猫咪,日韩三级片网址入口

java常用的設(shè)計(jì)模式-命令模式的實(shí)現(xiàn)

上傳人:xins****2008 文檔編號(hào):27437371 上傳時(shí)間:2021-08-18 格式:DOC 頁(yè)數(shù):2 大?。?5KB
收藏 版權(quán)申訴 舉報(bào) 下載
java常用的設(shè)計(jì)模式-命令模式的實(shí)現(xiàn)_第1頁(yè)
第1頁(yè) / 共2頁(yè)
java常用的設(shè)計(jì)模式-命令模式的實(shí)現(xiàn)_第2頁(yè)
第2頁(yè) / 共2頁(yè)

最后一頁(yè)預(yù)覽完了!喜歡就下載吧,查找使用更方便

5 積分

下載資源

資源描述:

《java常用的設(shè)計(jì)模式-命令模式的實(shí)現(xiàn)》由會(huì)員分享,可在線閱讀,更多相關(guān)《java常用的設(shè)計(jì)模式-命令模式的實(shí)現(xiàn)(2頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。

1、 Command定義   不少Command模式的代碼都是針對(duì)圖形界面的,它實(shí)際就是菜單命令,我們?cè)谝粋€(gè)下拉菜單選擇一個(gè)命令時(shí),然后會(huì)執(zhí)行一些動(dòng)作.      將這些命令封裝成在一個(gè)類中,然后用戶(調(diào)用者)再對(duì)這個(gè)類進(jìn)行操作,這就是Command模式,換句話說,本來用戶(調(diào)用者)是直接調(diào)用這些命令的,如菜單上打開文檔(調(diào)用者),就直接指向打開文檔的代碼,使用Command模式,就是在這兩者之間增加一個(gè)中間者,將這種直接關(guān)系拗?jǐn)?同時(shí)兩者之間都隔離,基本沒有關(guān)系了.      顯然這樣做的好處是符合封裝的特性,降低耦合度,Command是將對(duì)行為進(jìn)行封裝的典型模式,Factory是將創(chuàng)

2、建進(jìn)行封裝的模式,   從Command模式,我也發(fā)現(xiàn)設(shè)計(jì)模式一個(gè)"通病":好象喜歡將簡(jiǎn)單的問題復(fù)雜化, 喜歡在不同類中增加第三者,當(dāng)然這樣做有利于代碼的健壯性 可維護(hù)性 還有復(fù)用性.      如何使用?   具體的Command模式代碼各式各樣,因?yàn)槿绾畏庋b命令,不同系統(tǒng),有不同的做法.下面事例是將命令封裝在一個(gè)Collection的List中,任何對(duì)象一旦加入List中,實(shí)際上裝入了一個(gè)封閉的黑盒中,對(duì)象的特性消失了,只有取出時(shí),才有可能模糊的分辨出:      典型的Command模式需要有一個(gè)接口.接口中有一個(gè)統(tǒng)一的方法,這就是"將命令/請(qǐng)求封裝為對(duì)象":   pub

3、lic interface Command {     public abstract void execute ( );   }       具體不同命令/請(qǐng)求代碼是實(shí)現(xiàn)接口Command,下面有三個(gè)具體命令   public class Engineer implements Command {        public void execute( ) {       //do Engineer"s command     }   }   public class Programmer implements Command {        public vo

4、id execute( ) {       //do programmer"s command     }   }      public class Politician implements Command {        public void execute( ) {       //do Politician"s command     }   }      按照通常做法,我們就可以直接調(diào)用這三個(gè)Command,但是使用Command模式,我們要將他們封裝起來,扔到黑盒子List里去:      public class producer{     

5、public static List produceRequests() {       List queue = new ArrayList();       queue.add( new DomesticEngineer() );       queue.add( new Politician() );       queue.add( new Programmer() );       return queue;     }      }      這三個(gè)命令進(jìn)入List中后,已經(jīng)失去了其外表特征,以后再取出,也可能無法分辨出誰是Engineer 誰是Progr

6、ammer了,看下面如何調(diào)用Command模式:      [code]public class TestCommand {     public static void main(String[] args) {              List queue = Producer.produceRequests();       for (Iterator it = queue.iterator(); it.hasNext(); )           //取出List中東東,其他特征都不能確定,只能保證一個(gè)特征是100%正確,           // 他們至少是接口Co

7、mmand的"兒子".所以強(qiáng)制轉(zhuǎn)換類型為接口Command              ((Command)it.next()).execute();          }   } [/code]      由此可見,調(diào)用者基本只和接口打交道,不合具體實(shí)現(xiàn)交互,這也體現(xiàn)了一個(gè)原則,面向接口編程,這樣,以后增加第四個(gè)具體命令時(shí),就不必修改調(diào)用者TestCommand中的代碼了.      理解了上面的代碼的核心原理,在使用中,就應(yīng)該各人有自己方法了,特別是在如何分離調(diào)用者和具體命令上,有很多實(shí)現(xiàn)方法,上面的代碼是使用"從List過一遍"的做法.這種做法只是為了演示.      使用Command模式的一個(gè)好理由還因?yàn)樗軐?shí)現(xiàn)Undo功能.每個(gè)具體命令都可以記住它剛剛執(zhí)行的動(dòng)作,并且在需要時(shí)恢復(fù).

展開閱讀全文
溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!