Zpo-11-wyk-Slajd36: Różnice pomiędzy wersjami
Nie podano opisu zmian |
Nie podano opisu zmian |
||
Linia 1: | Linia 1: | ||
== | ==Extract Superclass== | ||
[[Image:zpo-11-wyk-Slajd36.PNG| | [[Image:zpo-11-wyk-Slajd36.PNG|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. | |||
[[zpo-11-wyk-Slajd35 | << Poprzedni slajd]] | [[zpo-11-wyk-toc|Spis treści ]] | [[zpo-11-wyk-Slajd37 | Następny slajd >>]] | [[zpo-11-wyk-Slajd35 | << Poprzedni slajd]] | [[zpo-11-wyk-toc|Spis treści ]] | [[zpo-11-wyk-Slajd37 | Następny slajd >>]] |
Aktualna wersja na dzień 17:37, 4 lis 2006
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.