少年阿賓

          那些青春的歲月

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

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

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

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


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

          應用場景:

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

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

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

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

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


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

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

          Feedback

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

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

          主站蜘蛛池模板: 迁安市| 工布江达县| 饶河县| 梅州市| 肃北| 普定县| 旅游| 社旗县| 桃园县| 涡阳县| 洛川县| 观塘区| 娄烦县| 满城县| 绍兴县| 句容市| 株洲市| 东台市| 临桂县| 梁山县| 临汾市| 保定市| 玉树县| 大宁县| 赫章县| 淮北市| 浑源县| 桐梓县| 兴和县| 城口县| 义乌市| 广安市| 永济市| 黔西县| 新竹县| 东海县| 龙岩市| 临泉县| 东莞市| 恩施市| 贵德县|