Sobes.tech
Middle

Декоратор чист?

sobes.tech AI

Ҷавоб аз AI

Декоратор — бу шаблон дизайну, який дозволяє динамічно додавати нову поведінку об'єкту без зміни його структури.

Основні характеристики:

  • Гнучкість: Дозволяє додавати або видаляти функціональність об'єктів під час виконання.
  • Незалежність: Нова функціональність може бути додана незалежно від основного класу.
  • Використання композиції: Декоратор містить посилання на декорований об'єкт і перенаправляє запити до нього, додаючи логіку перед або після виконання.

Застосування:

  • Логування
  • Перевірка доступу (аутентифікація/авторизація)
  • Додавання метаданих
  • Зміна поведінки методів

Приклад у Python:

# Простий функція для декорування
def my_function():
    return "Hello"

# Декоратор
def simple_decorator(func):
    def wrapper():
        print("Перед викликом функції")
        result = func()
        print("Після виклику функції")
        return result
    return wrapper

# Застосування декоратора
@simple_decorator
def decorated_function():
    return "World"

# Виклик декорованої функції
# decorated_function() виведе:
# Перед викликом функції
# Після виклику функції
# і поверне "World"