Zpo-11-wyk-Slajd21

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania

Replace Type Code with Polymorphism

Replace Type Code with Polymorphism


Przekształcenie to stanowi ciąg dalszy poprzedniego, stosującego do obsługi pola stanu zgodne z wzorcem State. Tym razem ten sam wzorzec zostanie wykorzystany także do usunięcia warunkowego wyboru określonego zachowania obiektu i przeniesienia związanych z nim metod do podklasy reprezentującej stan.

Pierwszym krokiem przekształcenia jest wyłączenie wyrażenia warunkowego do osobnej metody, tak aby było możliwe przeniesienie jej do klasy abstrakcyjnej reprezentującej stan obiektu (zob. przekształcenie Replace Type Code with State). Następnym krokiem jest przeniesienie tej metody do tej klasy i pozostawienie w obiekcie źródłowym delegacji do tej instancji tej klasy. W ten sposób wywołanie metody, której zachowanie zależy od stanu, jest zawsze delegowane do bieżącego obiektu stanu.

Gdy metoda znajdzie się w klasie abstrakcyjnej, wówczas należy pokryć ją we wszystkich podklasach, kopiując do nich właściwą gałąź wyrażenia warunkowego, związaną z danym stanem. Po przeniesieniu wszystkich gałęzi metoda w klasie abstrakcyjnej może zostać zadeklarowana jako abstrakcyjna.


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