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

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

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

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

5 積分

下載資源

資源描述:

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

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

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

3、lic interface Command {     public abstract void execute ( );   }       具體不同命令/請求代碼是實現(xiàn)接口Command,下面有三個具體命令   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)用這三個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;     }      }      這三個命令進(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中東東,其他特征都不能確定,只能保證一個特征是100%正確,           // 他們至少是接口Co

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

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

相關(guān)資源

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

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

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


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