Command模式有三個主要組件:調用器,命令和接收機。客戶端提供了祈求提供信息,以調用特定方法M
上的接收機必需的,而它是命令對象(其容納由接收機)實際調用M
。命令模式不是依賴倒置原理的實現嗎?
一)爲了貫徹落實CP我們必須脫鉤調用者與命令的數量邏輯,這樣的方式,當我們增加指令數,祈求類沒有改變。我們通過讓命令對象和Invoker取決於抽象(即接口)。
因此,是不是CP只是具體實現DIP?
b)若CP確實DIP的實現,那麼是什麼讓CP與其他類型的DIP實施的有什麼不同?我們不能認爲DIP的所有其他實現也有Invoker對象(即更高級別的模塊),命令對象(即提供更高級別模塊的行爲的依賴關係),而將考慮Receiver依賴對象(即低級別模塊)調用的任何方法?
謝謝
編輯:
一)
的依賴對象保持相關性作爲一個領域,並將其用於 所有後續的方法調用。
如果依賴對象不保持這種依賴作爲一個領域,因此不使用它爲所有的來電subsequnt,而是它總是收到一個新的依賴的對象,可能我們則認爲,我們有a CP而不是DI?
反之亦然 - 如果調用程序總是調用相同的命令對象,可能我們則認爲,我們有DI,而不是CP,不管是什麼工作命令對象實際執行?b)我理解你正在努力創造的點,但是我仍然有一些重大的麻煩來區分什麼使某件事成爲行爲,什麼是一個命令。從我的角度來看,向Invoker傳遞命令也可以被解釋爲注入依賴對象所需的行爲來完成它的工作。它是真的很明確還是更主觀?因此,我們如何判斷一個對象所做的工作是命令還是行爲?
嗨,萬一你找時間幫我一些 - 我已經編輯了我的帖子 – user1483278 2012-07-07 20:29:33
謝謝你的幫助 – user1483278 2012-07-10 15:51:09