Zpo-8-wyk-Slajd40: 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:
==Przykład==
==Refused Bequest==


[[Image:zpo-8-wyk-Slajd40.PNG|Przykład]]
[[Image:zpo-8-wyk-Slajd40.PNG|Refused Bequest]]




W klasie Książka jest zdefiniowana metoda ''autor'' ''().'' Jednak przed jej wywołaniem należy się upewnić, czy ma ona wartość różną od ''null'' , gdyż pozwala to uniknąć zgłoszenia wyjątku. Celem przekształcenia jest usunięcie instrukcji warunkowej, która poprzedza wywołanie dowolnej metody w klasie Książka.
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

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.


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