Назад к вопросам
Junior — Middle
71
Какая основная цель использования паттерна Декоратор и в чем его преимущества?
Ответ от нейросети
sobes.tech AI
Паттерн Декоратор позволяет динамически добавлять объектам новые обязанности, оборачивая их в другие объекты-декораторы без изменения исходного кода. Это особенно полезно, когда нужно расширить функциональность без создания множества подклассов.
Преимущества:
- Гибкость: можно комбинировать декораторы для разных эффектов.
- Отделение обязанностей: каждый декоратор отвечает за свою функцию.
- Избежание взрывного роста подклассов.
Пример на Python:
class Component:
def operation(self):
return "Основная операция"
class Decorator(Component):
def __init__(self, component):
self._component = component
def operation(self):
return f"Декор({self._component.operation()})"
component = Component()
decorated = Decorator(component)
print(decorated.operation()) # Выведет: Декор(Основная операция)