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"