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
   54   55   56   57   58   59   60   61   62   63   64