Junior — Middle
Können Sie erklären, was das Decorator-Muster ist und was seine Hauptbedeutung ist?
sobes.tech KI
Antwort von AI
Das Muster «Decorator» ermöglicht es, Objekten dynamisch neue Verantwortlichkeiten hinzuzufügen, indem sie in andere Dekorator-Objekte eingewickelt werden, ohne die ursprüngliche Klasse zu ändern.
Die Hauptidee ist, eine Hülle um das Objekt zu erstellen, die dasselbe Interface implementiert und zusätzliche Logik vor oder nach dem Aufruf der Methoden des ursprünglichen Objekts ausführen kann.
Dies ist nützlich, wenn die Funktionalität erweitert werden soll, ohne zu erben oder den bestehenden Code zu ändern.
Beispiel im 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; }
}
// Verwendung:
Coffee coffee = new MilkDecorator(new SimpleCoffee());
System.out.println(coffee.cost()); // 7
Auf diese Weise ermöglicht der Decorator, die Funktionalität von Objekten flexibel zur Laufzeit zu erweitern.