Zpo-7-wyk-Slajd2
Decorator: cel
Dekorator jest wzorcem zbliżonym pod względem struktury do wzorców Proxy i Adapter. Celem jego stosowania jest stworzenie możliwości dodawania funkcjonalności do klasy w czasie wykonywania programu. Alternatywnym sposobem realizacji podobnego celu (modyfikacji zachowania wewnątrz grupy klas) jest dziedziczenie, jednak ma ono poważne wady. Jeżeli klasa ma trzy różne właściwości, które mogą wpływać na jej zachowanie i mogą przyjmować wartości binarne (np. klasa Pracownik: wiek – pełnoletni/dziecko, zatrudnienie – pracujący/bezrobotny, stan cywilny – wolny/żonaty), wówczas do reprezentacji wszystkich możliwych przypadków należałoby utworzyć 2^3 = 8 podklas. Liczba ta rośnie wykładniczo wraz ze wzrostem liczby właściwości. Takie rozwiązanie na dłuższą metę jest nieakceptowalne, i dlatego konieczne jest wykorzystanie innego mechanizmu, np. wzorca Decoratora.