Zpo-8-wyk-Slajd15: 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:
==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

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 >>