Декоратор (шаблон проектування)

Матеріал з Вікіпедії — вільної енциклопедії.

Перейти до: навігація, пошук

Декоратор, Decorator — структурний шаблон проектування, призначений для динамічного підключення додаткових зобов'язань до об'єкту. Шаблон Декоратор надає гнучку альтернативу практиці визначення підкласів з метою розширення функціональності.

Зміст

[ред.] Основні характеристики

[ред.] Завдання

Об'єкт, який передбачається використовувати, виконує основні функції. Проте може потрібно додати до нього деяку додаткову функціональність, яка виконуватиметься до або після основної функціональності об'єкту.

[ред.] Спосіб вирішення

Декоратор передбачає розширення функціональності об'єкту без визначення підкласів.

[ред.] Учасники

Клас ConcreteComponent — клас, в який за допомогою шаблону Декоратор додається нова функціональність. В деяких випадках базова функціональність надається класами, похідними від класу ConcreteComponent. У подібних випадках клас ConcreteComponent є вже не конкретним, а абстрактним. Абстрактний клас Component визначає інтерфейс для використання всіх цих класів.

[ред.] Наслідки

Функціональність, що додається, реалізується в невеликих об'єктах. Перевага полягає в можливості динамічно додавати цю функціональність або після основної функціональності об'єкту ConcreteComponent.

[ред.] Реалізація

Створюється абстрактний клас, що представляє як початковий клас, так і нові функції, що додаються в клас. У класах-декораторах нові функції викликаються в необхідній послідовності — до або після виклику подальшого об'єкту.

[ред.] Зауваження і коментарі

  • Хоча об'єкт-декоратор може додавати свою функціональність або після функціональності основного об'єкту, ланцюжок створюваних об'єктів завжди повинен закінчуватися об'єктом класу ConcreteComponent.
  • Базові класи мові Java широко використовують шаблон Декоратор для організації обробки операцій введення-висновку.

[ред.] Посилання

Decorator design pattern

Особисті інструменти