четверг, 23 октября 2014 г.

Фасад, Адаптер, Декоратор. Всё время - путаю их

По мотивам - Товарищ "вчерне" реализовал GUI-морду для DUnit под FireMonkey.

Фасад
"Шаблон фасад (англ. Facade) — структурный шаблон проектирования, позволяющий скрыть сложность системы путем сведения всех возможных внешних вызовов к одному объекту, делегирующему их соответствующим объектам системы."

"Как обеспечить унифицированный интерфейс с набором разрозненных реализаций или интерфейсов, например, с подсистемой, если нежелательно высокое связывание с этой подсистемой или реализация подсистемы может измениться?"

Адаптер
"Адаптер (англ. Adapter или англ. Wrapper — Обёртка) — структурный шаблон проектирования, предназначенный для организации использования функций объекта, недоступного для модификации, через специально созданный интерфейс."

"Система поддерживает требуемые данные и поведение, но имеет неподходящий интерфейс."

Декоратор
"Декоратор (англ. Decorator) — структурный шаблон проектирования, предназначенный для динамического подключения дополнительного поведения к объекту. Шаблон Декоратор предоставляет гибкую альтернативу практике создания подклассов с целью расширения функциональности."

"Объект, который предполагается использовать, выполняет основные функции. Однако может потребоваться добавить к нему некоторую дополнительную функциональность, которая будет выполняться до, после или даже вместо основной функциональности объекта."

Надеюсь теперь - "не буду путать":

1. Фасад - скрывает за собой "набор объектов" и "взаимодействие между ними".
2. Адаптер - "адаптирует" интерфейс. Аналог - агрегации.
3. Декоратор - "заменяет" часть функций. Аналог - наследования.



Комментариев нет:

Отправить комментарий