В классическом шаблоне Facade один объект обычно обеспечивает упрощенный интерфейс для чего-то более сложного.
Как выразилась «Банда четырех» (настолько близко к «официальному», насколько это возможно…):
Фасад (185) Предоставляет унифицированный интерфейс для набора интерфейсов в подсистеме. Фасад определяет высокоуровневый интерфейс, упрощающий использование подсистемы.
и
... фасад просто абстрагирует интерфейс к объектам подсистемы, чтобы упростить их использование; он не определяет никакой новой функциональности, и классы подсистем не знают об этом.
Или, как говорит Unmesh в https://stackoverflow.com/a/5242476:
Фасад ограждает пользователя от сложных деталей системы и предоставляет ему упрощенное представление о ней, которое легко использовать. Он также отделяет код, использующий систему, от деталей подсистем, что облегчает последующую модификацию системы.
Принцип единственной ответственности советует нам, что
у класса или модуля должна быть одна и только одна причина для изменения.
Согласно дяде Бобу (http://en.m.wikipedia.org/wiki/Single_responsibility_principle)
Учитывая, что Фасад по своему замыслу ограждает пользователя от множества «причин для изменения», как эти две идеи могут работать вместе? Разве у Фасада не столько причин для изменения, сколько подсистем, от которых зависит его реализация?