Staram się zrozumieć jedną z zasad SOLID, konkretnie zasadę podstawienia Liskov. W sieci znajduję bardzo dużo artykułów, niedających jednak jasnego wyjaśnienia. Odnoszę wrażenie, że ich autorzy sami niedokładnie rozumieją temat.
Coś więcej udało mi się znaleźć w dwóch miejscach.
Tu: http://www.codeproject.com/Articles/595160/Understand-Liskov-Substitution-Principle-LSP
Omówiony tutaj przykład z grubsza trzyma się kupy, chociaż wydaje mi się lekko nieżyciowy. Komentarze pod artykułem też mówią, że jest on nieprawidłowy: http://www.codeproject.com/Articles/595160/Understand-Liskov-Substitution-Principle-LSP?msg=4570854#xx4570854xx lub w szczególności: www.codeproject.com/Messages/4569903/This-is-wrong.aspx. Niestety to, co się dzieje dalej, jest już z pogranicza zrozumienia.
Inną propozycję wyjaśnienia znalazłem w książce "Rusz głową! Analiza i projektowanie obiektowe". Autorzy w tym miejscu proponują zastosowanie kompozycji zamiast dziedziczenia. Dla mnie ten przykład też jest dość niejednoznaczny.
Proszę o pomoc w zrozumieniu osoby, które znają tę zasadę i stosują ją w życiu codziennym. Idealne byłyby przykłady błędnego kodu ze wskazaniem, jakie zagrożenia to niesie oraz rozwiązania z użyciem zasady Liskov. Chociaż będę wdzięczny za każdą poradę :)
[Mirek]