Sobes.tech
Middle

O que é um decorador?

sobes.tech IA

Resposta da IA

O decorador é um padrão de projeto que permite adicionar dinamicamente um novo comportamento a um objeto sem alterar a sua estrutura.

Características principais:

  • Flexibilidade: Permite adicionar ou remover funcionalidades dos objetos em tempo de execução.
  • Independência: A nova funcionalidade pode ser adicionada independentemente da classe principal.
  • Uso de composição: O decorador contém uma referência ao objeto decorado e redireciona as solicitações para ele, adicionando lógica antes ou depois da execução.

Aplicações:

  • Registo
  • Verificação de acesso (autenticação/autorização)
  • Adição de metadados
  • Alteração do comportamento dos métodos

Exemplo em Python:

# Função simples para decorar
def my_function():
    return "Hello"

# Decorador
def simple_decorator(func):
    def wrapper():
        print("Antes da chamada da função")
        result = func()
        print("Depois da chamada da função")
        return result
    return wrapper

# Uso do decorador
@simple_decorator
def decorated_function():
    return "World"

# Chamada da função decorada
# decorated_function() produziria:
# Antes da chamada da função
# Depois da chamada da função
# e retornaria "World"