Zpo-8-wyk-Slajd40: Różnice pomiędzy wersjami
Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Nie podano opisu zmian |
Nie podano opisu zmian |
||
Linia 1: | Linia 1: | ||
== | ==Refused Bequest== | ||
[[Image:zpo-8-wyk-Slajd40.PNG| | [[Image:zpo-8-wyk-Slajd40.PNG|Refused Bequest]] | ||
Odrzucony spadek bardzo mocno wiąże się z ogólniejszym problemem złego wykorzystania dziedziczenia do współdzielenia kodu. Ma miejsce wówczas, gdy nadklasa oferuje swoim podklasom znaczną funkcjonalność, natomiast one z niej nie korzystają. Oznacza to, że klasy te są znacznie słabiej związane ze sobą niż wskazywałby na to rodzaj relacji między nimi. | |||
Problem ten można usunąć przede wszystkim przesuwając wybrane metody do podklas. Pozwala to na usunięcie ich z tych podklas, które ich nie potrzebują, i jednocześnie odciążenie nadklasy. Drugim rozwiązaniem jest rezygnacja z relacji dziedziczenia na rzecz delegacji. Wówczas relacja w lepszym stopniu odzwierciedla powiązanie pomiędzy obydwiema klasami. | |||
[[zpo-8-wyk-Slajd39 | << Poprzedni slajd]] | [[zpo-8-wyk-toc|Spis treści ]] | [[zpo-8-wyk-Slajd41 | Następny slajd >>]] | [[zpo-8-wyk-Slajd39 | << Poprzedni slajd]] | [[zpo-8-wyk-toc|Spis treści ]] | [[zpo-8-wyk-Slajd41 | Następny slajd >>]] |
Aktualna wersja na dzień 18:14, 4 lis 2006
Refused Bequest
Odrzucony spadek bardzo mocno wiąże się z ogólniejszym problemem złego wykorzystania dziedziczenia do współdzielenia kodu. Ma miejsce wówczas, gdy nadklasa oferuje swoim podklasom znaczną funkcjonalność, natomiast one z niej nie korzystają. Oznacza to, że klasy te są znacznie słabiej związane ze sobą niż wskazywałby na to rodzaj relacji między nimi.
Problem ten można usunąć przede wszystkim przesuwając wybrane metody do podklas. Pozwala to na usunięcie ich z tych podklas, które ich nie potrzebują, i jednocześnie odciążenie nadklasy. Drugim rozwiązaniem jest rezygnacja z relacji dziedziczenia na rzecz delegacji. Wówczas relacja w lepszym stopniu odzwierciedla powiązanie pomiędzy obydwiema klasami.