Sobes.tech
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"