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.