Zpo-8-wyk-Slajd36

Z Studia Informatyczne
Wersja z dnia 07:10, 21 sie 2006 autorstwa Bwalter (dyskusja | edycje)
(różn.) ← poprzednia wersja | przejdź do aktualnej wersji (różn.) | następna wersja → (różn.)
Przejdź do nawigacjiPrzejdź do wyszukiwania

Extract Superclass

Extract Superclass


Przekształcenie to pozwala ujednolicić grupę niespokrewnionych klas o podobnych sygnaturach metod i podobnym zakresie odpowiedzialności. W efekcie powstaje ich nadklasa, do której zostają przeniesione wspólne metody i pola.

Mechanika rozpoczyna się od utworzenia pustej nadklasy i zadeklarowania dziedziczenia po niej w każdej z analizowanych klas (oczywiście, w języku Java warunkiem poprawności takiego przekształcenia jest, aby nie były one już podklasami jakiejkolwiek innej klasy). Następnie, przeprowadzając zmiany w sygnaturach metod, należy doprowadzić do sytuacji, w której sygnatury te (i zakresy odpowiedzialności) będą albo identyczne, albo całkowicie różne. Metody identyczne należy przekopiować do nadklasy, a następnie kolejno usuwać z podklas. W przypadku metod całkowicie różnych można zostawić je w podklasach, w uzasadnionych przypadkach deklarując je w nadklasie jako abstrakcyjne (wówczas jednak wszystkie podklasy muszą je zaimplementować) lub o pustej domyślnej implementacji.

W efekcie przekształcenia powstaje nadklasa, która definiuje w jednym miejscu wspólne metody i pola grupy klas.


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