Zpo-8-wyk-Slajd44: Różnice pomiędzy wersjami
Nie podano opisu zmian |
Nie podano opisu zmian |
||
Linia 1: | Linia 1: | ||
== | ==Parallel Inheritance Hierarchies== | ||
[[Image:zpo-8-wyk-Slajd44.PNG| | [[Image:zpo-8-wyk-Slajd44.PNG|Parallel Inheritance Hierarchies]] | ||
Równoległe hierarchie dziedziczenia mogą oznaczać błąd w przydziale odpowiedzialności do klas, ponieważ stworzenie klasy w jednej hierarchii oznacza również konieczność stworzenia jej odpowiednika w drugiej. Jednak ocena nie jest całkowicie jednoznaczna: podobne rozwiązania stosuje się w kilku wzorcach projektowych z rodziny Factory (np. Factory Method czy Abstract Factory). Wówczas obiekt tworzący jest także odseparowany od produktu, i dodanie jednego z nich wymaga dodania także drugiego. Zatem obecność tego przykrego zapachu należy badać dość ostrożnie. | |||
Rozwiązanie polega na przeniesieniu odpowiedzialności z klas jednej hierarchii do drugiej, połączone z unifikacją ich interfejsów. Prowadzi to w dużej mierze do pozostawienia jednej hierarchii klas i usunięcia zbędnych odpowiedników w drugiej. | |||
[[zpo-8-wyk-Slajd43 | << Poprzedni slajd]] | [[zpo-8-wyk-toc|Spis treści ]] | [[zpo-8-wyk-Slajd45 | Następny slajd >>]] | [[zpo-8-wyk-Slajd43 | << Poprzedni slajd]] | [[zpo-8-wyk-toc|Spis treści ]] | [[zpo-8-wyk-Slajd45 | Następny slajd >>]] |
Aktualna wersja na dzień 18:14, 4 lis 2006
Parallel Inheritance Hierarchies
Równoległe hierarchie dziedziczenia mogą oznaczać błąd w przydziale odpowiedzialności do klas, ponieważ stworzenie klasy w jednej hierarchii oznacza również konieczność stworzenia jej odpowiednika w drugiej. Jednak ocena nie jest całkowicie jednoznaczna: podobne rozwiązania stosuje się w kilku wzorcach projektowych z rodziny Factory (np. Factory Method czy Abstract Factory). Wówczas obiekt tworzący jest także odseparowany od produktu, i dodanie jednego z nich wymaga dodania także drugiego. Zatem obecność tego przykrego zapachu należy badać dość ostrożnie.
Rozwiązanie polega na przeniesieniu odpowiedzialności z klas jednej hierarchii do drugiej, połączone z unifikacją ich interfejsów. Prowadzi to w dużej mierze do pozostawienia jednej hierarchii klas i usunięcia zbędnych odpowiedników w drugiej.