Zpo-8-wyk-Slajd32: Różnice pomiędzy wersjami

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Bwalter (dyskusja | edycje)
Nie podano opisu zmian
 
Bwalter (dyskusja | edycje)
Nie podano opisu zmian
 
Linia 1: Linia 1:
==Push Down Method==
==Large Class==


[[Image:zpo-8-wyk-Slajd32.PNG|Push Down Method]]
[[Image:zpo-8-wyk-Slajd32.PNG|Large Class]]




To przekształcenie jest komplementarne w stosunku do przeniesienia metody do nadklasy. Jeżeli metoda zdefiniowana w nadklasie ma znaczenie jedynie dla wybranych podklas, wówczas bardziej uzasadnione może okazać się przeniesienie jej do tych podklas i usunięcie z nadklasy.
Problem nadmiernej złożoności klas jest rozwinięciem poprzedniego przykrego zapachu. Klasa niekoniecznie musi być fizycznie zbyt długa – istotą problemu jest zbyt duża odpowiedzialność, jaką jest obarczona. W efekcie wewnątrz jednej klasy fizycznej znajdują się dwie lub więcej klas logicznych, czyli odrębnych zakresów odpowiedzialności.


Przekształcenie rozpoczyna się od zadeklarowania metody we wszystkich podklasach poprzez skopiowania do nich ciała z nadklasy. Następnie metoda z nadklasy jest usuwana, jednak z uwagi na uprzednie przeniesienie jej do wszystkich podklas, zachowanie programu nie zmienia się. Ostatnim krokiem jest usunięcie metody z tych podklas, które jej nie potrzebują.
Jest kilka objawów tego nadużycia: klasa posiada wiele metod, pól, klas wewnętrznych, dużą liczbę metod służących jedynie wygodzie programisty etc. Na poziomie pomiarów najlepszym wskaźnikiem tego przykrego zapachu jest niska spójność klasy. Oznacza ona, że klasa powinna być podzielona na mniejsze jednostki.
 
Właśnie to rozwiązanie jest najczęściej stosowane w celu usunięcia problemu. Nowa klasa może być niespokrewniona z klasą oryginalną, być jej pod- lub nad-klasą lub dziedziczyć wspólny interfejs.




[[zpo-8-wyk-Slajd31 | << Poprzedni slajd]] | [[zpo-8-wyk-toc|Spis treści ]] | [[zpo-8-wyk-Slajd33 | Następny slajd >>]]
[[zpo-8-wyk-Slajd31 | << Poprzedni slajd]] | [[zpo-8-wyk-toc|Spis treści ]] | [[zpo-8-wyk-Slajd33 | Następny slajd >>]]

Aktualna wersja na dzień 18:14, 4 lis 2006

Large Class

Large Class


Problem nadmiernej złożoności klas jest rozwinięciem poprzedniego przykrego zapachu. Klasa niekoniecznie musi być fizycznie zbyt długa – istotą problemu jest zbyt duża odpowiedzialność, jaką jest obarczona. W efekcie wewnątrz jednej klasy fizycznej znajdują się dwie lub więcej klas logicznych, czyli odrębnych zakresów odpowiedzialności.

Jest kilka objawów tego nadużycia: klasa posiada wiele metod, pól, klas wewnętrznych, dużą liczbę metod służących jedynie wygodzie programisty etc. Na poziomie pomiarów najlepszym wskaźnikiem tego przykrego zapachu jest niska spójność klasy. Oznacza ona, że klasa powinna być podzielona na mniejsze jednostki.

Właśnie to rozwiązanie jest najczęściej stosowane w celu usunięcia problemu. Nowa klasa może być niespokrewniona z klasą oryginalną, być jej pod- lub nad-klasą lub dziedziczyć wspólny interfejs.


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