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