2013-12-11 2 views

ответ

4

Вы со ссылкой на Remote интерфейс, как RMI в Java? Я не думаю, что это facade, но фактически реализация шаблона proxy.

Удаленный переадресация всех вызовов (скрытых от пользователя через шаблон прокси) на другую машину. Это скрывает от пользователя тот факт, что работа не выполняется локально.

Facade шаблон обычно упрощает сложный интерфейс к более упрощенной версии (например, заменяет сложную панель управления с помощью другой панели управления только с несколькими наиболее используемыми кнопками). Если вам действительно нужна более сложная версия, вы все равно можете использовать старые более сложные элементы управления.

EDIT После того, как вы указали, что вы имеете в виду Marin Фаулера Remote Facade я объясню далее:

Фаулера Remote Facade не только Remote + Facade узоры. Есть также дополнительные аргументы в пользу упрощений, используемых фасадом.

Вместо простого упрощения сложных методов или удаления из используемых методов с фасада. RemoteFacade явно используется для объединения нескольких общих методов в «неуправляемый» интерфейс для уменьшения латентности и сетевого трафика.

С Remote звонки будут проходить через сеть (с использованием Java RMI и т. Д.), Для преобразования вызова метода в сообщение для передачи по сети много накладных расходов. Требуется время, чтобы сообщение перешло по сети и получило сообщение назад и отменило отладку ответа и т. Д. Также могут быть проверки уровня безопасности и перехват трафика. Все это добавляет количество времени и усилий для вызова удаленного метода.

RemoteFacade объединяет несколько общих методов в одно сетевое сообщение. Поэтому, используя пример Фаулера из его книги, если у вас есть интерфейс для адреса с отдельными сеттерами для setCity() setZipcode(), setStreet(). Это будет 3 удаленных вызова, которые будут проходить через сеть. Вместо этого RemoteFacade превращает это в один метод setAddress (улица, город, почтовый индекс), для которого требуется только одно сетевое сообщение, и поэтому для вызова потребуется меньше времени.

+0

Я имел в виду шаблон Fowlers: http://martinfowler.com/eaaCatalog/remoteFacade.html, который, как я думаю, не совпадает с обновленным ответом от RMI – bckpwrld

+0

@bckpwrld. – dkatzel

Смежные вопросы