Zpo-6-wyk-Slajd43: 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:
==Inline Class==
==State: przykład cd.(1)==


[[Image:zpo-6-wyk-Slajd43.PNG|Inline Class]]
[[Image:zpo-6-wyk-Slajd43.PNG|State: przykład cd.(1)]]




Przekształcenie Inline Class służy do usunięcia klas, których odpowiedzialność jest zbyt mała, żeby uzasadniała ich istnienie. Usunięcie odbywa się poprzez wchłonięcie klasy przez klienta związanego z nią relacją asocjacji).
W klasie Account pole ''isOpen'' jest zastąpione poprzez referencję typu AccountState wskazującą na obiekt reprezentujący bieżący stan, przy czym domyślnym stanem początkowym jest stan aktywności (AccountOpen). Metoda ''credit'' ''()'' w klasie Account jest delegowana do obiektu stanu, dzięki czemu zmiana tego obiektu spowoduje inną obsługę tego komunikatu.


Mechanika polega na wykonywaniu przekształceń Move Method i Move Field do momentu otrzymania pustej klasy źródłowej, którą można usunąć.
Metoda ''close'' ''()'' powoduje zmianę bieżącego obiektu stanu na AccountClosed – od tego momentu metoda ''credit'' ''()'' jest zablokowana.




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

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

State: przykład cd.(1)

State: przykład cd.(1)


W klasie Account pole isOpen jest zastąpione poprzez referencję typu AccountState wskazującą na obiekt reprezentujący bieżący stan, przy czym domyślnym stanem początkowym jest stan aktywności (AccountOpen). Metoda credit () w klasie Account jest delegowana do obiektu stanu, dzięki czemu zmiana tego obiektu spowoduje inną obsługę tego komunikatu.

Metoda close () powoduje zmianę bieżącego obiektu stanu na AccountClosed – od tego momentu metoda credit () jest zablokowana.


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