2013-01-24 64 views

回答

8

請參閱本文件:http://pic.dhe.ibm.com/infocenter/wchelp/v6r0m0/index.jsp?topic=%2Fcom.ibm.commerce.developer.doc%2Fconcepts%2Fcsdcommand_framework.htm

基本上一個任務是在較大的過程中的步驟。控制器通常會調用完成整個過程所需的任務。如果您有兩個需要相同任務的進程(命令控制器),他們每個都調用該任務,並且不需要在每個控制器中複製該任務的行爲。

想想做一個花生醬三明治和火腿三明治作爲你的兩個命令控制器。拿到一塊盤子,把麪包放在盤子上,然後把三明治麪包放在三明治上,這樣就可以分享了。獲得火腿,或者獲得PB只是在適當的命令控制器中使用的任務。

2

控制器命令是在請求中被調用的命令,就像我們在Spring中有struts和controller中的動作一樣。任務是更大進程中的一步。任務命令是爲控制器命令執行特定任務的命令,如其他框架中的服務類。爲了完成請求,控制器命令可以調用多個任務命令。

其他區別在於 - a。控制器命令有一個url映射,而任務命令沒有映射到它們的URL。 b。控制器命令在任務命令之前被調用。

0

控制器命令

  • 舉行一個動作完整的業務邏輯。不能作爲獨立請求執行 ,但應該從另一個命令調用。 需要定義需要資源級別的訪問控制策略,並執行 。

Ex - UserRegistrationAddCmd用於註冊用戶。

任務命令

  • 存放參與的動作即邏輯的一部分;執行 特定任務。可以作爲獨立請求執行。 不需要訪問控制,因爲這是通過已經定義了策略的控制器命令 執行的。

Ex- 從UserRegistrationAddCmd調用UpdateCredentialsCmd以加密和更新用戶的憑證。

+0

控制器命令是作爲獨立的請求執行的,它們可能不包含所有的業務邏輯,因爲它可能被放置在任務中,甚至在EJB中。 此外,在大多數情況下,可以調用控制器命令,就像它們是任務命令一樣。 – martinatime