Page 59 - 4190
P. 59
краси для новорічної ялинки є прикладами патернів-декораторів. Во-
гні, гірлянди, іграшки і так далі вішають на ялинку для надання їй
святкового виду. Прикраси не змінюють саму ялинку, а тільки роб-
лять її новорічною.
Хоча картини можна повісити на стіну і без рамок, рамки часто
додаються для надання нового стилю (рис. 6.4).
Рисунок 6.4 – Приклад використання патерну Decorator
Для використання патерну Decorator необхідно виконати такі дії:
1. Підготувати початкові дані: один основний компонент і декіль-
ка додаткових (необов'язкових) "обгорток".
2. Створити загальний для усіх класів інтерфейс за принципом
"найменшого спільного знаменника НСЗ" (lowest common
denominator LCD). Цей інтерфейс повинен робити усі класи взаємо-
замінними.
3. Створити базовий клас другого рівня для підтримки додатко-
вих декоруючих класів.
4. Основний клас і клас Decorator наслідують загальний НСЗ-
інтерфейс.
5. Клас Decorator використовує відношення композиції. Вказівник
на НСЗ-об'єкт ініціалізувався в конструкторі.
6. Клас Decorator делегує виконання операції НСЗ-об’єкту.
7. Для реалізації кожної додаткової функціональності необхідно
59