Zpo-11-wyk-Slajd4

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania

Replace Type Code with Class

Replace Type Code with Class


Przechowywanie informacji o stanie obiektu w postaci pola typu prymitywnego o zmiennej wartości jest bardzo powszechnym rozwiązaniem. Jednak w zależności od sposobu, w jaki pole reprezentujące stan wpływa na zachowanie swojego właściciela, z zagadnienia tego można wyróżnić kilka odrębnych problemów, i każdy z nich rozwiązywać za pomocą innego przekształcenia refaktoryzacyjnego.

Pierwsze z nich dotyczy sytuacji, gdy pole przyjmuje skończoną i dobrze określoną liczbę wartości, raczej nie zmienia wartości w trakcie swojego istnienia, oraz, co bardzo ważne, wartość pola nie wpływa na zachowanie obiektu. W związku z ostatnią cechą zmiana może zostać zrealizowana za pomocą jednej klasy, bez konieczności definiowania podklas czy polimorficznego pokrywania metod.

Celem przekształcenia jest transformacja pola w nową klasę, której wartości pól będą odzwierciedlały stan właściciela tego obiektu.

Pierwszym krokiem zmiany jest utworzenie nowej klasy oraz dodanie do klasy oryginalnej referencji do obiektu nowoutworzonej klasy. Następnie należy dla każdej metody korzystającej z dotychczasowego pola w klasie źródłowej stworzyć jej odpowiednik korzystający z nowego pola i nowej klasy. Warto zauważyć, że w ten sposób klasa w dotychczasowej postaci może istnieć bez zmiany swojej funkcjonalności. Kolejnym krokiem jest modyfikacja klientów, tak aby korzystały z nowych metod.

Po zakończeniu przekształcenia, które pozwala nam hermetyzować proces zarządzania zmiennymi reprezentującymi stan, można usunąć stare, nieużywane metody.


<< Poprzedni slajd | Spis treści | Następny slajd >>