Zpo-8-wyk-Slajd20
Przykład(4)
Klasa TypKarty przechowuje stałe reprezentujące poszczególne stany obiektu, jak również definiuje metodę fabrykę tworzącą obiekty jednej z jej podklas w zależności od przekazanego parametru. Zasada działania tego mechanizmu jest identyczna jak w przypadku poprzedniego przekształcenia, które reprezentowało stany jako podklasy.
W wyniku przekształcenia pole typu prymitywnego, przechowywane w klasie źródłowej, zostało przetransformowane do postaci oddzielnej klasy i jej podklas. Mechanizm ten pozwala swobodnie modyfikować wartość pola stanu w trakcie wykonywania programu (należy w tym celu utworzyć instancję innej z podklas), i rozróżniać stany na podstawie klasy. Jednak rozwiązanie to nie wykorzystuje do końca możliwości oferowanych przez polimorfizm, dlatego przekształcenie to można kontynuować.