Разница между фасадом и бизнес-делегатом - PullRequest
3 голосов
/ 02 сентября 2011

Чем отличается шаблон дизайна фасада от бизнес-делегата.Разве оба не используются для сокрытия бизнес-логики от клиента?

1 Ответ

8 голосов
/ 02 сентября 2011

Делегирование стоит между клиентом и фактической реализацией, обычно скрывая / фильтруя / расширяя определенные функциональные возможности реализации от клиента.

Фасад предоставляет подробный API, скрывающий более сложную логику и / иликоординация, обычно связывающая несколько реализаций, которые работают вместе, и, как правило, для удобства клиента.

Примеры каждого из java:

Делегирование: Collections.unmodifiableList() возвращает список, который хранитссылка на исходный список и делегирует его для всех методов, но выдает исключения, если его методы-мутаторы вызываются.

Фасад: Если вы когда-либо видели нелепое количество кода, необходимого для печати javaXML-документ DOM , первое, что вы делаете, это создаете служебный метод, чтобы скрыть все уродство - этот метод можно считать фасадом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...