設計模式之命令模式的一點補充

來源:互聯網
上載者:User

在命令模式中有4個角色:調用者,命令,接收者和用戶端,調用者的責任是發送命令請求,命令負責對當前的命令接收者處理過程的調用(傳達作用)。而接收者負責具體的命令執行,也就是負責命令的具體處理邏輯。用戶端的作用就是根據一定的參數,建立具體的命令和接收者,並決定命令由誰(接收者)來執行(請求和處理配對)。需要注意的是調用者可以處在Client端,也可以不處在用戶端(比如遠程命令請求),因此就整個模式來講,用戶端角色對調用者的依賴就不是必須的了。也因為此,在命令模式的UML圖中,是沒有Client對調用者Invoker的依賴關係的。當然,雖然沒有畫,如果命令的調用者的調用請求也是由Client負責,那依賴就是比然的了。

 

後記:之所以寫這篇短文,是因為有網友問到了這個問題,這位網友看得很認真和仔細,其實我剛開始學這個模式的時候並沒有注意到這個問題,因為從範例程式碼中來看,Client端是應該對調用者角色有依賴關係的,但UML圖中就沒有這種依賴關係示意。當然,造成這個問題的主要原因還是在於大部分的範例程式碼都忽略了這個問題,有點想當然的了。在這裡感謝這位網友的提問,也讓我對這個模式有了更進一步的理解。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.