Highlander napisał(a):
http://www.planetgeek.ch/wp-content/uploads/2013/06/Clean-Code-V2.1.pdf
Jak tak patrze na kod javowy to tam dziedziczenie i polimorfizm jest ograniczony do minimum.
w c++ jest jakos częściej spotykane?
Zlezy od typu aplikacji.
Ogolnie rzecz biorac dziedziczenia, nie powinno sie uzywac, do rozbudowy funkcjonalnosci, a do zmiany typu. Jesli mamy klase Car, to kolejna klasa moze być np. Ford.
Rozbudowa funkcjonalnosci powinna sie odbywac poprzez komponenty (kompozycja, poszukaj Component pattern, composition, itd).
Zrobienie dobrej komponentowej architektury moze byc poczatkowo wiekszym wyzwaniem (np. trzeba dokladnie ustalic jak komponenty powinny sie moc komunikowac miedzy soba, jesli wogole), ale daje duzo wieksze mozliwosci pozniej. Zamiast sie gloic jaka klase wydziedziczyc, po prostu dodajesz komponenty (Kola, Silnik, Kierownica etc.) i masz obiekt o odpowiedniej funkcjonlanosci, ktora nie jest hardcoded na poziomie klasy (jesli nie liczyc, instancji samych komponentow).