Decorator Design Pattern

Dekorator. Strukturalny wzorzec projektowy pozwalający na rozbudowę funkcjonalności istniejącej klasy dynamicznie podczas działania programu. Wzorzec ten pozwala na dodanie lub zmianę zachowania klasy, bez potrzeby jej dziedziczenia.
Wykorzystanie wzorca dekorator polega na opakowaniu klasy bazowej (dekorowanej) w klasę dekorującą.
Zaletą wykorzystania tego wzorca jest bardzo duża elastyczność poprzez rozbicie funkcjonalności na wiele mniejszych klas, które mogą dynamicznie zmieniać działanie klasy bazowej. Wadą natomiast jest rozbicie projektu na małe klasy, które często są do siebie bardzo podobne.