Junior — Middle
101
Масалан, дар код чӣ гуна истифода бурдани паттерни декораторро мисол мезанед?
Ширкатҳо дар куҷо пурсиданд
Ҷавоб аз AI
sobes.tech AI
Паттерн декоратор позволяет динамически добавлять объектам новые обязанности, оборачивая их в другие объекты-декораторы.
Пример на Python — добавим декоратор для логирования вызова метода:
class Component:
def operation(self):
return "Основная операция"
class Decorator:
def __init__(self, component):
self._component = component
def operation(self):
result = self._component.operation()
return result
class LoggingDecorator(Decorator):
def operation(self):
print("Лог: вызов операции")
result = self._component.operation()
print("Лог: операция завершена")
return result
# Использование
component = Component()
decorated = LoggingDecorator(component)
print(decorated.operation())
Вывод:
Лог: вызов операции
Лог: операция завершена
Основная операция
Таким образом, мы обернули объект Component в LoggingDecorator, добавив функциональность логирования без изменения исходного класса.