Pakiet programów do zdalnego nauczania Programowania Orientowanego Obiektowo
Dzisiaj jest
Poniedziałek, 16 Lipiec 2018
Zarejestrowanych użytkowników: 4
Dostępnych pytań testowych: 102
HOME
Strona tytułowa pracy dyplomowej
NAUKA
Materiały dydaktyczne związane z OOP
TESTY
Sprawdzenie poziomu zdobytej wiedzy
ZASOBY
Literatura i zasoby sieciowe o OOP
ŹRÓDŁA
Zbiór projektów dydaktycznych z OOP
KONTO
Możliwość śledzenia własnych postępów
INFO



Dodawanie funkcjonalności do istniejących klas

W przykładzie regulatora z wymiennym algorytmem klasa Regulator mogła korzystać z jednej i tylko jednej klasy algorytmu w danym momencie. Nie zawsze jednak tak musi być. Strategie można bowiem używać w takiej formie, aby pozwalały na uzyskanie dodatkowej funkcjonalności istniejących obiektów. Takie obiekty w domyślnej postaci nie musiałyby przyjmować żadnego obiektu strategii. Jednak jeśli klient zechciałby dodać jedną lub wiele dodatkowych funkcjonalności korzystałby z metody typu dodajModyfikator(), która uzupełniałaby wewnętrzną listę strategii o nowy obiekt. Metoda symuluj() poza wykonywaniem standardowego działania uwzględniała by również nowe funkcjonalności zawarte w ów liście każdorazowo je wywołując.

Dodawanie funkcjonalności w tym wypadku jest bardzo podobne do użycia wzorca Dekorator. Obiekty dekorujące otaczają klasę główną, którą chcą rozszerzać (klasa główna jest składnikiem dekoratora). W przypadku strategii jest odwrotnie - składnikami klasy głównej są dodatkowe funkcjonalności. Może być to bardzo pomocne, gdy odpowiednie modyfikacje powinny wpływać na stan wewnętrzny obiektu głównego. Jeśli chodzi o dekoratory stanowi to problem, co zostało opisane w jednym z podrozdziałów dotyczących tego wzorca.

Adamik Łukasz, Politechnika Śląska w Gliwicach (AEiI) - 2010/11