Middle
Cos'è un decoratore?
sobes.tech AI
Risposta dell'AI
Il decoratore è un modello di progettazione che consente di aggiungere dinamicamente un nuovo comportamento a un oggetto senza modificarne la struttura.
Caratteristiche principali:
- Flessibilità: permette di aggiungere o rimuovere funzionalità agli oggetti durante l'esecuzione.
- Indipendenza: la nuova funzionalità può essere aggiunta indipendentemente dalla classe principale.
- Utilizzo della composizione: il decoratore contiene un riferimento all'oggetto decorato e reindirizza le richieste ad esso, aggiungendo logica prima o dopo l'esecuzione.
Applicazioni:
- Registrazione
- Controllo degli accessi (autenticazione/autorizzazione)
- Aggiunta di metadati
- Modifica del comportamento dei metodi
Esempio in Python:
# Funzione semplice per decorare
def my_function():
return "Hello"
# Decoratore
def simple_decorator(func):
def wrapper():
print("Prima della chiamata della funzione")
result = func()
print("Dopo la chiamata della funzione")
return result
return wrapper
# Applicazione del decoratore
@simple_decorator
def decorated_function():
return "World"
# Chiamata della funzione decorata
# decorated_function() produrrà:
# Prima della chiamata della funzione
# Dopo la chiamata della funzione
# e restituirà "World"