2010-05-05 47 views
2

我讀過3個指令設計模式的描述: wikipedia,dofactory和。指令設計模式的使用

在所有這些中,UML都顯示了客戶端與接收者之間的關係,具體命令爲&,但與調用者無關。 但是,在所有3個示例中,客戶端是啓動調用者並調用其Execute方法的客戶端。

我認爲這也應該是與調用者的關係。我在這裏錯過了什麼?也許甚至是基本的UML知識?

回答

3

這可能是簡單示例的限制。在實踐中,客戶和調用者之間不需要有任何關係。

客戶端可以將命令對象序列化並將其發送到遠程服務以供執行,或者客戶端可以將該命令添加到隊列以供其他線程卸載並稍後執行。

+0

你好。您能否詳細說明客戶端如何序列化命令對象並將其發送到遠程服務?如果我們想象有一個名爲「CreateGameCommand」的命令對象,它是一個具體的「Command」類。這是我們通過TCP/IP套接字發送到刪除服務的對象嗎?服務器會調用這個對象上的'execute()'方法嗎?或者客戶會先調用'execute()'方法嗎?非常感謝 – Joeblackdev 2011-02-16 13:56:25

+1

@Joeblackdev - 是的,你會使用你喜歡的任何線上格式(二進制,XML,任何)來串行化CreateGameCommand並將它發送到服務器,服務器將反序列化並調用execute()方法目的。 – Paolo 2011-02-16 14:15:29

+0

超級!非常感謝您的幫助。 – Joeblackdev 2011-02-16 14:33:44