|
|
Linia 1: |
Linia 1: |
| ==Replace Type Code with State== | | ==Wyniki eksperymentu== |
|
| |
|
| [[Image:zpo-8-wyk-Slajd15.PNG|Replace Type Code with State]] | | [[Image:zpo-8-wyk-Slajd15.PNG|Wyniki eksperymentu]] |
|
| |
|
|
| |
|
| Przekształcenie to jest podobne do poprzedniego, a różnica polega na zastąpieniu mechanizmu dziedziczenia delegacją. Stosuje się je w tych przypadkach, gdy użycie podklas jest niemożliwe, np. w sytuacji, gdy obiekt musi zmienić swój stan (w przypadku podklas wymagałoby to utworzenia nowego obiektu, co często jest nie do przyjęcia z uwagi na różnicę referencji starego i nowego obiektu).
| | Wykres przedstawia średni czas oraz jego odchylenie standardowe w obu grupach (AdHoc – AH i Testy&Refaktoryzacja – TR), dla trzech faz rozwoju produktu. Warto zwrócić uwagę na dość dużą wartość odchylenia standardowego we wszystkich grupach, a także gorszy wynik osiągnięty przez grupę TR we wszystkich fazach rozwoju produktu. |
| | |
| Celem przekształcenia jest wyłączenie sfery związanej ze stanami i zmiennym zachowaniem do oddzielnej hierarchii dziedziczenia, złożonej z klasy abstrakcyjnej (lub interfejsu) oraz jej podklas. Obiekt jest związany z obiektem reprezentującym określony stan relacją kompozycji, i poprzez nią deleguje wywołania do obiektu stanu.
| |
| | |
| Mechanika przekształcenia przebiega w następujących krokach. Na początku należy zahermetyzować pole stanu i udostępnić je przez metody dostępowe set/get. Następnym krokiem jest zdefiniowanie klasy abstrakcyjnej, której implementacje będą reprezentować stany obiektu, wraz z metodami set/get zapewniającymi dostęp do starego pola stanu. Inne metody zadeklarowane w tej klasie, które następnie będą pokrywane w podklasach, umożliwiają określenie, jakie zachowanie będzie zależało od stanu. Po stworzeniu klasy abstrakcyjnej należy zdefiniować jej podklasy, pokrywając odpowiednio metody set/get dostępu do pola stanu dziedziczone z nadklasy. W tym momencie następuje zdefiniowanie nowego mechanizmu opisu stanu: z pola przechowywanego bezpośrednio w klasie źródłowej do nowej, niezależnej hierarchii klas reprezentujących stany. Polega to na stworzeniu pola w klasie źródłowej, wskazującego na obiekt typu klasy abstrakcyjnej, a następnie zmianie metod set/get, tak aby odwoływały się do nowego pola reprezentującego stan. Ostatnim krokiem jest usunięcie starego pola stanu.
| |
|
| |
|
|
| |
|
| [[zpo-8-wyk-Slajd14 | << Poprzedni slajd]] | [[zpo-8-wyk-toc|Spis treści ]] | [[zpo-8-wyk-Slajd16 | Następny slajd >>]] | | [[zpo-8-wyk-Slajd14 | << Poprzedni slajd]] | [[zpo-8-wyk-toc|Spis treści ]] | [[zpo-8-wyk-Slajd16 | Następny slajd >>]] |
Aktualna wersja na dzień 18:13, 4 lis 2006
Wyniki eksperymentu
Wykres przedstawia średni czas oraz jego odchylenie standardowe w obu grupach (AdHoc – AH i Testy&Refaktoryzacja – TR), dla trzech faz rozwoju produktu. Warto zwrócić uwagę na dość dużą wartość odchylenia standardowego we wszystkich grupach, a także gorszy wynik osiągnięty przez grupę TR we wszystkich fazach rozwoju produktu.
<< Poprzedni slajd | Spis treści | Następny slajd >>