Oryginalna implementacja została szczegółowo opisana we wpływowej pracy .

Problem Systemy komputerowe tworzone są do przetwarzania informacji. Zbiór informacji może mieć dowolną formę oraz dowolne znaczenie. Może to być jakiś wycinek rzeczywistości, np. proces przemysłowy czy obsługa operacji bankowych, jak i byt bardziej abstrakcyjny, np. zdjęcie przetwarzane przez program graficzny. Podstawowym problemem przy projektowaniu aplikacji jest zamodelowanie tego zbioru informacji w postaci cyfrowej jako algorytmy i struktury danych, a także znalezienie sposobu na zapewnienie użytkownikowi możliwości pracy z nimi, tj. zaprojektowanie interfejsu użytkownika. Interfejs użytkownika nigdy nie jest cyfrową reprezentacją, ale mechanizmem dostępu do niej. W typowej aplikacji te same dane często mogą być prezentowane na kilka różnych sposobów w zależności od kontekstu, lecz użytkownik cały czas musi mieć wrażenie, że operuje bezpośrednio na oryginalnych danych.

Budowa mały|400px|Diagram klas wzorca jako kompozycja wzorców Obserwator, Strategia oraz Kompozyt.