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

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

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

    少年阿賓

    那些青春的歲月

      BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
      500 Posts :: 0 Stories :: 135 Comments :: 0 Trackbacks
    基本概念:
          在軟件系統中,“行為請求者”與“行為實現者”通常呈現一種“緊耦合”。但在某些場合,比如要對行為進行“記錄、撤銷/重做、事務”等處理,這種無法抵御變化的緊耦合是不合適的。在這種情況下,如何將“行為請求者”與“行為實現者”解耦?將一組行為抽象為對象實現二者之間的松耦合。這就是命令模式(Command Pattern)。

         將來自客戶端的請求傳入一個對象,從而使你可用不同的請求對客戶進行參數化。用于“行為請求者”與“行為實現者”解耦,可實現二者之間的松耦合,以便適應變化。分離變化與不變的因素。

       在面向對象的程序設計中,一個對象調用另一個對象,一般情況下的調用過程是:創建目標對象實例;設置調用參數;調用目標對象的方法。

    但在有些情況下有必要使用一個專門的類對這種調用過程加以封裝,我們把這種專門的類稱作command類。


    特點
    1)、command模式將調用操作的對象和實現該操作的對象解耦
    2)、可以將多個命令裝配成一個復合命令,復合命令是Composite模式的一個實例
    3)、增加新的command很容易,無需改變已有的類

    應用場景:

    我們來分析下命令模式的使用場景吧,一般情況下如下幾類場景中使用命令模式會達到很好的效果:

          1、當一個應用程序調用者與多個目標對象之間存在調用關系時,并且目標對象之間的操作很類似的時候。

          2、例如當一個目標對象內部的方法調用太復雜,或者內部的方法需要協作才能完成對象的某個特點操作時。

          3、有時候調用者調用目標對象后,需要回調一些方法。

         命令模式是將行為請求者和行為實現者解耦合的方式。對命令進行封裝,將命令和執行命令分隔開。請求的一方發出命令,要求執行某些操作,接受一方收到命令,執行這些操作的真正實現。請求的一方不必知道接受方的接口,以及如何被操作。 


        命令模式可以應用到很多場景,比如實現do/undo功能、實現導航功能。

    posted on 2015-03-30 21:23 abin 閱讀(2144) 評論(2)  編輯  收藏 所屬分類: PatternDesigns

    Feedback

    # re: 命令模式應用場景[未登錄] 2016-08-05 13:23 1
    32  回復  更多評論
      

    # re: 命令模式應用場景[未登錄] 2016-08-05 13:24 1
    訂單  回復  更多評論
      

    主站蜘蛛池模板: 美女无遮挡免费视频网站 | 午夜不卡AV免费| 色播在线永久免费视频| 亚洲视频在线观看2018| 国语成本人片免费av无码| 亚洲综合中文字幕无线码| 青娱分类视频精品免费2| 亚洲香蕉久久一区二区三区四区| 综合在线免费视频| 亚洲а∨天堂久久精品9966| 成年在线网站免费观看无广告| 亚洲国产欧美国产综合一区| 国产一级一片免费播放i| 免费毛片毛片网址| 亚洲男同帅GAY片在线观看| 久久国产精品2020免费m3u8| 亚洲精品日韩中文字幕久久久| 久久久久久久免费视频| 男人的天堂av亚洲一区2区| 免费少妇a级毛片人成网| 福利免费在线观看| 亚洲影院在线观看| 最近最新的免费中文字幕| 日韩亚洲翔田千里在线| 亚洲色偷偷综合亚洲AVYP| 毛片无码免费无码播放| 亚洲一区二区三区丝袜| 亚洲人成人网站在线观看| 成人久久免费网站| 国产精品亚洲片夜色在线| 亚洲AⅤ优女AV综合久久久| 中国一级毛片免费看视频| 亚洲图片激情小说| 免费人成在线观看网站视频 | 成人影片麻豆国产影片免费观看| 337p日本欧洲亚洲大胆人人| 亚洲无线码在线一区观看| 18禁网站免费无遮挡无码中文| 亚洲av无码一区二区三区人妖 | 国产免费无码AV片在线观看不卡| 亚洲国产日韩在线|