Sobes.tech
Back to questions
Junior — Middle
55

В каких ситуациях принято использовать паттерн Декоратор?

Companies where asked
Soft Media Group

Answer from AI

sobes.tech AI

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

Типичные ситуации применения:

  • Расширение функциональности объектов во время выполнения.
  • Добавление дополнительных возможностей (например, логирование, кэширование, проверка прав) без изменения базового класса.
  • Обеспечение гибкой композиции поведения.

Пример на Python:

def decorator(func):
    def wrapper(*args, **kwargs):
        print("Перед вызовом функции")
        result = func(*args, **kwargs)
        print("После вызова функции")
        return result
    return wrapper

@decorator
def say_hello():
    print("Привет!")

say_hello()

Здесь функция decorator добавляет дополнительное поведение вокруг вызова say_hello без изменения её кода.