Фасад
Facade
Last updated
Was this helpful?
Facade
Last updated
Was this helpful?
Паттерн фасад (Facade) относится к структурным шаблонам проектирования и предоставляет унифицированный интерфейс вместо набора интерфейсов некоторой подсистемы. Он определяет интерфейс более высокого уровня, который упрощает использование подсистемы.
предоставление простого интерфейса к сложной подсистеме
ослабление связей между компонентами системы
упрощение взаимодействия: предоставление простого интерфейса к сложной подсистеме
снижение зависимости клиентского кода от подсистемы: работа происходит с одним объектом
увеличение сложности и сопровождаемости фасада
Если подсистема имеет большое количество компонентов или сложную структуру, фасад рискует стать сложным, перегруженным объектом, что приведет к укреплению связей между компонентами вместо их ослабления.
Абстрактная фабрика: допустимо использовать вместе с фасадом, чтобы предоставить интерфейс для создания объектов подсистем способом, не зависимым от этих подсистем. Абстрактная фабрика может выступать и как альтернатива фасаду, чтобы скрыть платформенно-зависимые классы.
Посредник: аналогичен фасаду в том смысле, что абстрагирует функциональность существующих классов.
Одиночка: обычно требуется только один фасад. Поэтому объекты фасадов часто бывают одиночками.
Подписчик-издатель: фасад может применять паттерн наблюдатель для уведомления клиентов о событиях, происходящих в подсистеме.
Компоновщик: фасад может использовать компоновщик для предоставления единого интерфейса к группе объектов внутри подсистемы.
Адаптер: фасад может использовать адаптеры для преобразования интерфейсов подсистемы в интерфейс, ожидаемый клиентом