Sobes.tech
Junior — Middle
108

Quel est l'objectif principal de l'utilisation du motif Décorateur et quels sont ses avantages?

Réponse de l'IA

sobes.tech IA

Паттерн Декоратор позволяет динамически добавлять объектам новые обязанности, оборачивая их в другие объекты-декораторы без изменения исходного кода. Это особенно полезно, когда нужно расширить функциональность без создания множества подклассов.

Преимущества:

  • Гибкость: можно комбинировать декораторы для разных эффектов.
  • Отделение обязанностей: каждый декоратор отвечает за свою функцию.
  • Избежание взрывного роста подклассов.

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