【问题标题】:command design pattern usage命令设计模式用法
【发布时间】:2023-04-14 18:20:01
【问题描述】:

我已经阅读了命令设计模式的 3 个描述: wikipediadofactorysource making

在所有这些中,UML 显示了客户端与接收者和具体命令之间的关系,但与调用者没有关系。 但在所有 3 个示例中,客户端都是启动调用程序并调用其 Execute 方法的客户端。

我认为这也应该与调用者有关。我在这里错过了什么吗?甚至是基本的 UML 知识?

【问题讨论】:

    标签: design-patterns uml command


    【解决方案1】:

    这可能是简单示例的限制。在实践中,客户端和调用者之间不需要建立关系。

    例如,客户端可以序列化命令对象并将其发送到远程服务以执行,或者客户端可以将命令添加到队列中以便另一个线程退出队列并稍后执行。

    【讨论】:

    • 您好。您能否详细说明客户端如何序列化命令对象并将其发送到远程服务?如果我们想象有一个名为“CreateGameCommand”的命令对象,它是一个具体的“Command”类。这是我们将通过 TCP/IP 套接字发送到删除服务的对象吗?然后服务器会在这个对象上调用 'execute()' 方法吗?还是客户端会先调用“execute()”方法?非常感谢
    • @Joeblackdev - 是的,您可以使用您喜欢的任何在线格式(二进制、XML 等)序列化 CreateGameCommand 并将其发送到服务器,然后服务器将反序列化并调用执行() 方法。
    • 超级!非常感谢您的帮助。