Sobes.tech
Назад к вопросам
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())  # Выведет: Декор(Основная операция)