Page 64 - 4190
P. 64
для створення ще більших.
Патерн Composite пропонує таке рішення. Він вводить абстракт-
ний базовий клас Component з поведінкою, загальною для усіх примі-
тивних і складених об'єктів. Підкласи Primitive and Composite є похі-
дними від класу Component. Складений об'єкт Composite зберігає
компоненти-нащадки абстрактного типу Component, кожен з яких
може бути також Composite.
UML-діаграма класів патерну Composite представлена на рисунку
6.8.
Для додавання або видалення об'єктів-нащадків у складений об'-
єкт Composite, клас Component визначає інтерфейси add() і remove().
Рисунок 6.8 – UML-діаграма класів патерна Composite
Патерн Bridge
Патерн Bridge (Міст) – відокремлює абстракцію від її реалізації
таким чином, щоб перше та друге можна було змінювати незалежно
одне від одного.
Якщо для деякої абстракції можливо кілька реалізацій, зазвичай
застосовують спадкування. Абстрактний клас визначає інтерфейс аб-
стракції, а його конкретні підкласи по-різному реалізують його. Але
такий підхід не завжди є достатньо гнучким. Спадкування жорстко
прив'язує реалізацію до абстракції, що перешкоджає незалежній мо-
дифікації, розширенню та повторному використанню абстракції та її
реалізації.
Слід використовувати шаблон Bridge у випадках, якщо:
64