Zpo-11-wyk-Slajd9: Różnice pomiędzy wersjami
Nie podano opisu zmian |
Nie podano opisu zmian |
||
Linia 1: | Linia 1: | ||
== | ==Replace Type Code with Subclasses== | ||
[[Image:zpo-11-wyk-Slajd9.PNG| | [[Image:zpo-11-wyk-Slajd9.PNG|Replace Type Code with Subclasses]] | ||
Drugie przekształcenie związane z polem reprezentującym stan obiektu dotyczy sytuacji, w którym zmiana stanu oznacza zmianę zachowania niektórych metod obiektu. W tym wypadku użycie pojedynczej klasy jest niewystarczające: konieczne jest pokrycie metod, tak aby ich zachowanie odpowiadało stanowi, w jakim znajduje się obiekt. | |||
Przekształcenie polega na wydzieleniu każdej wartości pola reprezentującego stan obiektu do oddzielnej podklasy. W ten sposób powstaje możliwość pokrywania metod wymagających zmiany zachowania, a jednocześnie wykorzystane jest dziedziczenie jako mechanizm powtórnego użycia kodu. | |||
Pierwszym krokiem przekształcenia jest hermetyzacja pola stanu, tak aby było dostępne we własnej klasie i jej podklasach. Następnie dla każdej dopuszczalnej wartości tego pola należy utworzyć nową podklasę, pokrywając w niej metodę zwracającą wartość pola stanu w nadklasie na reprezentowany przez tę podklasę stan. Po przeniesieniu wszystkich wartości pola ono samo może zostać usunięte z nadklasy, a metody dostępowe do niego (''set'' i ''get'' ) – zadeklarowane jako abstrakcyjne. | |||
[[zpo-11-wyk-Slajd8 | << Poprzedni slajd]] | [[zpo-11-wyk-toc|Spis treści ]] | [[zpo-11-wyk-Slajd10 | Następny slajd >>]] | [[zpo-11-wyk-Slajd8 | << Poprzedni slajd]] | [[zpo-11-wyk-toc|Spis treści ]] | [[zpo-11-wyk-Slajd10 | Następny slajd >>]] |
Aktualna wersja na dzień 17:38, 4 lis 2006
Replace Type Code with Subclasses
Drugie przekształcenie związane z polem reprezentującym stan obiektu dotyczy sytuacji, w którym zmiana stanu oznacza zmianę zachowania niektórych metod obiektu. W tym wypadku użycie pojedynczej klasy jest niewystarczające: konieczne jest pokrycie metod, tak aby ich zachowanie odpowiadało stanowi, w jakim znajduje się obiekt.
Przekształcenie polega na wydzieleniu każdej wartości pola reprezentującego stan obiektu do oddzielnej podklasy. W ten sposób powstaje możliwość pokrywania metod wymagających zmiany zachowania, a jednocześnie wykorzystane jest dziedziczenie jako mechanizm powtórnego użycia kodu.
Pierwszym krokiem przekształcenia jest hermetyzacja pola stanu, tak aby było dostępne we własnej klasie i jej podklasach. Następnie dla każdej dopuszczalnej wartości tego pola należy utworzyć nową podklasę, pokrywając w niej metodę zwracającą wartość pola stanu w nadklasie na reprezentowany przez tę podklasę stan. Po przeniesieniu wszystkich wartości pola ono samo może zostać usunięte z nadklasy, a metody dostępowe do niego (set i get ) – zadeklarowane jako abstrakcyjne.