Zainspirowany tą odpowiedzią:
Wymaga tego zasada substytucji Liskowa
- W podtypie nie można wzmocnić warunków wstępnych.
- Warunki podrzędne nie mogą zostać osłabione w podtypie.
- Niezmienniki nadtypu muszą być zachowane w podtypie.
- Ograniczenie historii („reguła historii”). Obiekty są uważane za modyfikowalne tylko za pomocą ich metod (enkapsulacji). Ponieważ podtypy mogą wprowadzać metody, które nie są obecne w nadtypu, wprowadzenie tych metod może pozwolić na zmiany stanu w podtypie, które nie są dopuszczalne w nadtypie. Ograniczenia historyczne tego zabraniają.
Miałem nadzieję, że ktoś opublikuje hierarchię klas, która narusza te 4 punkty i jak je odpowiednio rozwiązać.
Szukam szczegółowego wyjaśnienia do celów edukacyjnych, w jaki sposób zidentyfikować każdy z 4 punktów w hierarchii i jak najlepiej to naprawić.
Uwaga:
miałem nadzieję opublikować próbkę kodu dla osób, nad którymi będą pracować, ale samo pytanie dotyczy tego, jak zidentyfikować wadliwe hierarchie :)