Command Pattern-возвращает значение

Я использую шаблон команды для передачи команды от клиента на сервер через сокет TCP/IP. Сервер примет объект команды, десериализует его и затем вызовет execute() для объекта команды. Однако, мне нужно передать значение обратно через сокет. Делает команду "массив" разрешить для этого? Если нет, есть ли обойти? Я посмотрел пример выключателя света в Википедии, что здорово, но нет возвращаемых значений. Любой совет значительно оцененный.

1 ответов


у вас не должно быть метода "execute()" в Command отправляется на удаленный сервер, это плохо во многих отношениях, особенно в Java. The Command должно представлять действие, которое должен предпринять получатель. Который в этом случае должен вызвать метод для некоторого объекта.

на Command шаблон должен представлять собой действия, которые были или будут предприняты, а не реализацию этих действий. Подумайте о наборе инструкций, которые нужно выполнить.

то, что вы описываете в основном механизм вызова RPC-инженера. Не изобретать колесо. Смотрит на существующие механизмы RPC, есть много, чтобы выбрать из в мире Java. Затем вам нужно решить, является ли RPC синхронным или асинхронным.

A остальное на основе API является то, что является популярным и будет длиться дольше, чем API любого родного языка конкретного механизма, как RMI.