Command Pattern-возвращает значение
Я использую шаблон команды для передачи команды от клиента на сервер через сокет TCP/IP. Сервер примет объект команды, десериализует его и затем вызовет execute() для объекта команды. Однако, мне нужно передать значение обратно через сокет. Делает команду "массив" разрешить для этого? Если нет, есть ли обойти? Я посмотрел пример выключателя света в Википедии, что здорово, но нет возвращаемых значений. Любой совет значительно оцененный.
1 ответов
у вас не должно быть метода "execute()" в Command
отправляется на удаленный сервер, это плохо во многих отношениях, особенно в Java. The Command
должно представлять действие, которое должен предпринять получатель. Который в этом случае должен вызвать метод для некоторого объекта.
на Command
шаблон должен представлять собой действия, которые были или будут предприняты, а не реализацию этих действий. Подумайте о наборе инструкций, которые нужно выполнить.
то, что вы описываете в основном механизм вызова RPC-инженера. Не изобретать колесо. Смотрит на существующие механизмы RPC, есть много, чтобы выбрать из в мире Java. Затем вам нужно решить, является ли RPC синхронным или асинхронным.
A остальное на основе API является то, что является популярным и будет длиться дольше, чем API любого родного языка конкретного механизма, как RMI.