Sobes.tech
Junior — Middle

Pouvez-vous expliquer en quoi consiste le motif décorateur et quelle est sa signification principale?

sobes.tech IA

Réponse de l'IA

Le motif «Décorateur» permet d’ajouter dynamiquement de nouvelles responsabilités aux objets, en les enveloppant dans d’autres objets décorateurs sans modifier la classe d’origine.

L’idée principale est de créer un emballage autour de l’objet qui implémente la même interface et peut effectuer une logique supplémentaire avant ou après l’appel des méthodes de l’objet original.

C’est utile lorsque vous souhaitez étendre la fonctionnalité sans hériter ni modifier le code existant.

Exemple en pseudocode :

interface Coffee {
    double cost();
}

class SimpleCoffee implements Coffee {
    public double cost() { return 5; }
}

class MilkDecorator implements Coffee {
    private Coffee coffee;
    public MilkDecorator(Coffee coffee) { this.coffee = coffee; }
    public double cost() { return coffee.cost() + 2; }
}

// Utilisation :
Coffee coffee = new MilkDecorator(new SimpleCoffee());
System.out.println(coffee.cost()); // 7

Ainsi, le décorateur permet d’ajouter des fonctionnalités aux objets de manière flexible à l’exécution.