Pakiet programów do zdalnego nauczania Programowania Orientowanego Obiektowo
Dzisiaj jest
Środa, 18 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



Modyfikacje

W poprzednim przykładzie wszystkie metody wirtualne były metodami pierwotnymi (czystowirtualnymi). Konsekwencją tego jest fakt, że klasa bazowa była abstrakcyjna i aby zbudować klasę algorytmu, której egzemplarze można utworzyć należy w klasach pochodnych zaimplementować te metody.

Nie zawsze jednak musi tak być. Zdarza się, że istnieje potrzeba zdefiniowania pewnej podstawowej wersji algorytmu, którą można w całości zdefiniować w klasie bazowej. Dzięki temu nie musi być ona już abstrakcyjna i można tworzyć jej obiekty. Klasy pochodne będą mogły przesłaniać wybrane metody klasy bazowej w celu uzyskania modyfikacji algorytmu (kolejny przykład przedstawi taki przypadek).

Inną możliwością stosowania wzorca jest zastosowanie tzw. punktów zaczepienia. Są to metody, których implementacje w klasie bazowej są puste, tzn. nie wykonują żadnych czynności (ale w przeciwieństwie do metod czysto wirtualnych są zdefiniowane). Klient może budować klasy pochodne i przesłaniać puste metody, np. w celu reakcji na wystąpienie zdarzenia. Taki mechanizm bardzo często wykorzystuje się w klasach związanych z tworzeniem GUI. Użytkownik może wyprowadzać klasy pochodne od poszczególnych widgetów i przedefiniować operację, np. onClick() w celu reakcji na kliknięcie w obrębie widgetu.

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