Zpo-8-wyk-Slajd41: Różnice pomiędzy wersjami
Nie podano opisu zmian |
Nie podano opisu zmian |
||
Linia 1: | Linia 1: | ||
== | ==Inappropriate Intimacy== | ||
[[Image:zpo-8-wyk-Slajd41.PNG| | [[Image:zpo-8-wyk-Slajd41.PNG|Inappropriate Intimacy]] | ||
Niewłaściwa hermetyzacja jest dość częstym i dobrze znanym problemem. Wiąże się ona nie tylko z niepoprawnym użyciem kwalifikatorów dostępu, ale przede wszystkim z niewłaściwym podziałem odpowiedzialności pomiędzy klasy: jeżeli wymagają one bezpośredniego dostępu do swoich prywatnych części, oznacza to, że są zbyt ze sobą związane. | |||
Podstawowym rozwiązaniem jest przesunięcie metod i pól prywatnych do klas, które najbardziej ich potrzebują. Można także ograniczyć wiedzę o sobie dwóch klas, zmieniając relację dwukierunkową na jednokierunkową. Wrażliwe i współdzielone elementy dwóch klas można wyłączyć do nowej klasy, której obiekty będą współdzielone pomiędzy nie, zachowując jednocześnie hermetyzację. Niepoprawna hermetyzacja jest również możliwa wewnątrz hierarchii dziedziczenia – wówczas w celu odseparowania nadklasy od podklas można zmienić dziedziczenie w delegację. | |||
[[zpo-8-wyk-Slajd40 | << Poprzedni slajd]] | [[zpo-8-wyk-toc|Spis treści ]] | [[zpo-8-wyk-Slajd42 | Następny slajd >>]] | [[zpo-8-wyk-Slajd40 | << Poprzedni slajd]] | [[zpo-8-wyk-toc|Spis treści ]] | [[zpo-8-wyk-Slajd42 | Następny slajd >>]] |
Aktualna wersja na dzień 18:14, 4 lis 2006
Inappropriate Intimacy
Niewłaściwa hermetyzacja jest dość częstym i dobrze znanym problemem. Wiąże się ona nie tylko z niepoprawnym użyciem kwalifikatorów dostępu, ale przede wszystkim z niewłaściwym podziałem odpowiedzialności pomiędzy klasy: jeżeli wymagają one bezpośredniego dostępu do swoich prywatnych części, oznacza to, że są zbyt ze sobą związane.
Podstawowym rozwiązaniem jest przesunięcie metod i pól prywatnych do klas, które najbardziej ich potrzebują. Można także ograniczyć wiedzę o sobie dwóch klas, zmieniając relację dwukierunkową na jednokierunkową. Wrażliwe i współdzielone elementy dwóch klas można wyłączyć do nowej klasy, której obiekty będą współdzielone pomiędzy nie, zachowując jednocześnie hermetyzację. Niepoprawna hermetyzacja jest również możliwa wewnątrz hierarchii dziedziczenia – wówczas w celu odseparowania nadklasy od podklas można zmienić dziedziczenie w delegację.