Помимо интерфейса Remote Facade pattern
быть более крупнозернистый и клиентов, призывающих этот интерфейс будучи удаленного, а не местные, есть ли другие различия между этими двумя фигурами?Удаленный шаблон Фасад Фасад против шаблона
Спасибо
Помимо интерфейса Remote Facade pattern
быть более крупнозернистый и клиентов, призывающих этот интерфейс будучи удаленного, а не местные, есть ли другие различия между этими двумя фигурами?Удаленный шаблон Фасад Фасад против шаблона
Спасибо
Вы со ссылкой на 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 (улица, город, почтовый индекс), для которого требуется только одно сетевое сообщение, и поэтому для вызова потребуется меньше времени.
Я имел в виду шаблон Fowlers: http://martinfowler.com/eaaCatalog/remoteFacade.html, который, как я думаю, не совпадает с обновленным ответом от RMI – bckpwrld
@bckpwrld. – dkatzel