返回一个值

我使用命令模式通过TCP / IP套接字将命令从客户端传递到服务器。 服务器将接收命令对象,反序列化它,然后在命令对象上调用execute()。 但是,我需要通过套接字将值传回给调用者。 命令模式是否允许这样做? 如果没有,是否有解决方法? 我曾看过维基百科上的灯开关示例,这很棒,但没有返回值。 任何建议不胜感激。


在发送到远程服务器的Command上不应该有“execute()”方法,这在很多方面都很糟糕,特别是在Java中。 Command应该代表接收者应该采取的行动。 在这种情况下,在某个对象上调用方法。

Command模式代表已采取或将要采取的行动,而不是执行这些行动。 更多地考虑一组要执行的指令。

你所描述的基本上是一个超级工程RPC调用机制。 不要重新发明这个轮子。 看看现有的RPC机制,在Java世界中有很多选择。 然后,您需要确定RPC是同步还是异步。

基于REST的API是流行的,并且将比API等任何本机语言特定的机制(如RMI)更长久。

链接地址: http://www.djcxy.com/p/50837.html

上一篇: return a value

下一篇: how to cross direct user with google analytics