2010-05-05 59 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