Zpo-6-wyk-Slajd41: Różnice pomiędzy wersjami

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Bwalter (dyskusja | edycje)
Nie podano opisu zmian
 
Bwalter (dyskusja | edycje)
Nie podano opisu zmian
 
Linia 1: Linia 1:
==Move Field==
==State: przykład==


[[Image:zpo-6-wyk-Slajd41.PNG|Move Field]]
[[Image:zpo-6-wyk-Slajd41.PNG|State: przykład]]




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.
Przykładem ponownie będzie rachunek bankowy. Tym razem, obok stanu biznesowego, przechowującego informacje związane z rachunkiem (saldo, właściciel), posiada on także zmienną ''isOpen'' , określającą, czy rachunek jest aktywny, czy nie. Zmienna ta ma wpływ na działanie niektórych metod biznesowych: wykonanie operacji ''credit'' ''()'' nie jest możliwe, jeżeli zmienna ''isOpen'' ma wartość ''false'' .
 
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 odpowiedzialność oraz wiąże je silną zależnością.




[[zpo-6-wyk-Slajd40 | << Poprzedni slajd]] | [[zpo-6-wyk-toc|Spis treści ]] | [[zpo-6-wyk-Slajd42 | Następny slajd >>]]
[[zpo-6-wyk-Slajd40 | << Poprzedni slajd]] | [[zpo-6-wyk-toc|Spis treści ]] | [[zpo-6-wyk-Slajd42 | Następny slajd >>]]

Aktualna wersja na dzień 11:10, 17 paź 2006

State: przykład

State: przykład


Przykładem ponownie będzie rachunek bankowy. Tym razem, obok stanu biznesowego, przechowującego informacje związane z rachunkiem (saldo, właściciel), posiada on także zmienną isOpen , określającą, czy rachunek jest aktywny, czy nie. Zmienna ta ma wpływ na działanie niektórych metod biznesowych: wykonanie operacji credit () nie jest możliwe, jeżeli zmienna isOpen ma wartość false .


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