Wzorzec Dekorator
Strukturalny wzorzec Bandy Czterech — opakuj obiekt i dodaj wokół niego funkcjonalność, nie modyfikując oryginalnej klasy.
Klasyczny przykład: BufferedReader(FileReader(...)) — każda nakładka dodaje zachowanie (buforowany odczyt, gzip, szyfrowanie). Składnia @decorator w Pythonie to wsparcie tej samej idei na poziomie języka, stosowane w momencie definicji.
Lepszy niż dziedziczenie, gdy funkcje trzeba składać w czasie działania. Ryzyko: głęboko zagnieżdżone hierarchie opakowań trudno debugować. Najlepsze zastosowania: strumienie I/O, stosy middleware (Express, ASP.NET), AOP.