Sobes.tech
Junior — Middle
104

Podes dar um exemplo de aplicação do padrão decorador no código?

Empresas quando solicitadas
РунитиРунити

Resposta da IA

sobes.tech IA

O padrão decorador permite adicionar dinamicamente novas responsabilidades aos objetos, envolvendo-os em outros objetos decoradores.

Exemplo em Python: vamos adicionar um decorador para registrar a chamada do método:

class Component:
    def operation(self):
        return "Operação principal"

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("Log: chamada da operação")
        result = self._component.operation()
        print("Log: operação concluída")
        return result

# Uso
component = Component()
decorated = LoggingDecorator(component)
print(decorated.operation())

Saída:

Log: chamada da operação
Log: operação concluída
Operação principal

Dessa forma, envolvemos o objeto Component em LoggingDecorator, adicionando funcionalidade de registro sem alterar a classe original.