Sobes.tech
Middle

Qu'est-ce qu'un décorateur?

sobes.tech IA

Réponse de l'IA

Un décorateur est un patron de conception qui permet d'ajouter dynamiquement un comportement nouveau à un objet sans en modifier la structure.

Caractéristiques principales :

  • Flexibilité : Permet d'ajouter ou de supprimer des fonctionnalités aux objets en cours d'exécution.
  • Indépendance : La nouvelle fonctionnalité peut être ajoutée indépendamment de la classe principale.
  • Utilisation de la composition : Le décorateur contient une référence à l'objet décoré et redirige les requêtes vers lui, en ajoutant une logique avant ou après l'exécution.

Applications :

  • Journalisation
  • Vérification d'accès (authentification/autorisation)
  • Ajout de métadonnées
  • Modification du comportement des méthodes

Exemple en Python :

# Fonction simple pour décorer
def my_function():
    return "Hello"

# Décorateur
def simple_decorator(func):
    def wrapper():
        print("Avant l'appel de la fonction")
        result = func()
        print("Après l'appel de la fonction")
        return result
    return wrapper

# Application du décorateur
@simple_decorator
def decorated_function():
    return "World"

# Appel de la fonction décorée
# decorated_function() produirait :
# Avant l'appel de la fonction
# Après l'appel de la fonction
# et retournerait "World"