Делегирование стоит между клиентом и фактической реализацией, обычно скрывая / фильтруя / расширяя определенные функциональные возможности реализации от клиента.
Фасад предоставляет подробный API, скрывающий более сложную логику и / иликоординация, обычно связывающая несколько реализаций, которые работают вместе, и, как правило, для удобства клиента.
Примеры каждого из java:
Делегирование: Collections.unmodifiableList()
возвращает список, который хранитссылка на исходный список и делегирует его для всех методов, но выдает исключения, если его методы-мутаторы вызываются.
Фасад: Если вы когда-либо видели нелепое количество кода, необходимого для печати javaXML-документ DOM , первое, что вы делаете, это создаете служебный метод, чтобы скрыть все уродство - этот метод можно считать фасадом.