Декоратор
Юрий ЛогиновПозволяет добавлять объектам новую функциональность, оборачивая их в так называемые "обертки".
Применять:
- Когда нужно добавить объекту обязанностей на лету, незаметно для кода, который их использует.
- Когда нельзя расширить обязанности путем наследования (класс имеет ключевое слово final).
Плюсы:
- Большая гибкость
- Добавление обязанностей на лету
- Можно добавлять комбинировать обязанности
- Несколько мелких классов на все случаи жизни
Минусы:
- Трудно конфигурировать большие комбинации
- Может быть много мелких классов