Kurz erklärt
Das Decorator-Muster erweitert ein Objekt um zusätzliche Funktionen, indem man es in ein Hüllobjekt mit derselben Schnittstelle verpackt – ohne die Klasse zu ändern oder davon zu erben.
Genauer
Mehrere Dekoratoren lassen sich ineinander stecken, zum Beispiel Logging, Caching, Berechtigungsprüfung und Zeitmessung um dieselbe Funktion. Python hat dafür eine eigene Syntax (@dekorator), JavaScript/TypeScript kennt Decorators für Klassen, Java nutzt es bei Streams (new BufferedReader(new FileReader(...))).