Шаблон команды - вернуть значение - PullRequest
7 голосов
/ 16 февраля 2011

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

1 Ответ

4 голосов
/ 16 февраля 2011

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

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

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

API на основе

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

...