Zpo-9-wyk-Slajd41

Z Studia Informatyczne
Wersja z dnia 18:06, 4 lis 2006 autorstwa Bwalter (dyskusja | edycje)
(różn.) ← poprzednia wersja | przejdź do aktualnej wersji (różn.) | następna wersja → (różn.)
Przejdź do nawigacjiPrzejdź do wyszukiwania

Move Field

Move Field


Przeniesienie pola jest przekształceniem dotyczącym dwóch klas związanych ze sobą relacją asocjacji, agregacji lub kompozycji (ale nie dziedziczenia). Wykonuje się je w sytuacji, gdy pole to jest częściej używane przez obcą klasę niż przez klasę macierzystą. Celem jest zatem zwiększenie spójności klas poprzez przeniesienie go do właściwej klasy.

Pierwszym krokiem jest hermetyzacja pola i udostępnienie metod dostępu do niego get/set (zob. przekształcenie Encapsulate Field). Następnie należy utworzyć identyczne pole wraz z metodami dostępu w klasie docelowej. W tym momencie należy zmienić metody set/get w klasie oryginalnej, tak aby wywoływały ich odpowiedniki w klasie docelowej. Nieużywane pole w klasie źródłowej może zostać w tym momencie usunięte.

Warto zwrócić uwagę, że po przekształceniu do pola można odwołać się zarówno z klasy źródłowej, jak i klasy docelowej, co pozwala na elastyczne dostosowanie klientów do nowego położenia pola. W pewien sposób pozwala to także ukryć strukturę tych dwóch klas, jednak z drugiej strony rozmywa nieco ich odpowiedzialność oraz wiąże je silną zależnością.


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