Zpo-5-wyk-Slajd40
Z Studia Informatyczne
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 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.