<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 262,  comments - 221,  trackbacks - 0
    一、Command模式的適用場合:

    讓方法運行最常見的方式是調用之,但是在很多情況下,我們不能控制和提供方法執行的上下文和時機。這種情況下,可以把方法封裝在對象中。通過在對象中存儲調用方法所需的信息,就可以讓客戶端或者服務決定何時調用這個方法。

    Command模式的意圖是把請求封裝在對象中。

      --摘自《Java設計模式》第24章:Command(命令)模式

    二、Command模式的經典應用:

    Command模式的經典應用就是菜單命令。如何安排才能讓一個類在用戶單擊菜單的時候調用對應的方法呢?解決的方法就是應用多態性,具體做法如下:首先將操作的名稱固定,然后針對不同的類給出不同的實現。

      --摘自《Java設計模式》第24章:Command(命令)模式

    三、Command模式的簡單例子:

    參見http://www.jdon.com/designpatterns/command.htm

    四、Command模式的特點:

    ·有一個頂層的接口,用于表示“執行命令”這個抽象動作,其次該方法中往往會含有用于區分請求類型的形參
    ·有一至多個實現類,每個實現類實現了接口中“執行命令”這個抽象方法,提供具體的實現
    ·有一個用來裝載、保存命令執行類的容器對象,負責加載、初始化、查找、調用內部的各個命令對象

     
    五、Command調用的順序:

    ·初始化命令隊列,裝載各個命令對象(Command接口的實現類)
    ·接收事件/請求,將其作為參數傳遞給命令隊列
    ·命令隊列在自己內部查找合適的處理者,調用接口實現方法處理請求

    六、Command模式和其它模式的結合:

    ·Command模式和Memento模式結合,實現“撤銷”操作:
       這一點需要和“備忘錄模式”配合,每執行一個操作之前,先保存當前的狀態

    ·Command模式和Observer模式結合,實現“監聽-觸發”流程:
       在GUI界面中,注冊一個監聽器(Observer),監聽各個組件(Observable),當被監聽組件的被激活時,向監聽器傳遞一個信息,監聽器接收信息,作為參數傳遞給命令隊列。命令隊列根據參數查找,執行命令。


    -------------------------------------------------------------
    生活就像打牌,不是要抓一手好牌,而是要盡力打好一手爛牌。
    posted on 2008-04-07 15:13 Paul Lin 閱讀(3480) 評論(0)  編輯  收藏 所屬分類: 模式與重構
    <2008年4月>
    303112345
    6789101112
    13141516171819
    20212223242526
    27282930123
    45678910

    常用鏈接

    留言簿(21)

    隨筆分類

    隨筆檔案

    BlogJava熱點博客

    好友博客

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 久久一区二区三区免费播放| 久久久高清日本道免费观看| 免费一级毛片在线播放视频免费观看永久 | 黄网站免费在线观看| 久久久久久99av无码免费网站| 免费无遮挡无码永久在线观看视频| 国产精品久久免费视频| 亚洲国产精品国自产电影| 亚洲狠狠婷婷综合久久| 午夜免费啪视频在线观看| 亚洲AV无码成人精品区在线观看| 亚洲A∨精品一区二区三区下载| 免费h视频在线观看| 久久精品国产亚洲AV果冻传媒| 免费观看在线禁片| 久久精品国产亚洲AV无码麻豆| 免费人成网上在线观看| 亚洲精品视频免费观看| 亚洲精品9999久久久久无码| 免费无码成人AV片在线在线播放| 亚洲视频免费在线看| 国色精品va在线观看免费视频 | 一本久久a久久精品亚洲| 亚洲风情亚Aⅴ在线发布| 哒哒哒免费视频观看在线www| 国产精品美女免费视频观看| 免费观看男人免费桶女人视频| 婷婷亚洲综合一区二区| 无码一区二区三区免费视频| 国产精品亚洲精品久久精品| 精品国产亚洲一区二区在线观看| 亚洲AV香蕉一区区二区三区| 亚洲人成影院在线观看| 国产av无码专区亚洲av毛片搜 | a级毛片免费高清视频| 亚洲AV人无码综合在线观看| 99视频在线免费观看| 国产V亚洲V天堂无码久久久| 99久久免费国产精精品| 亚洲免费观看网站| 毛片免费观看网址|