Já bych nebyl tak striktní - použití dědičnosti pro odstranění duplicity je v mnoha jazycích s tradičním OOP osmdesátých/devadesátých let (třeba Java) celkem v pohodě. Ale jenom pokud se jedná o čistě implementační záležitost (ideálně ani společný předek není veřejný). Problémy nastanou pokud někdo použije dědičnost jako součást API. To prakticky vždy znamená jámu do které někdo spadne...
Ved prave, v jave je vela takychto uchylakov, co to robia. Bud presli z MVC++, alebo mali nejakeho nevzdelaneho ucitela. Osobne riesim duplicitu kodu bud delegaciou, alebo worker objectom, teraz k tomu pribudli aj funkcie. (No vo funkciach nie som este celkom doma). U mojho prveho zamestnavatela (nastastie som vtedy ako javista nepracoval), ked niekto pouzil dedicnost, aby sa mu neopakoval kod, dostal polhodinoveho "zjeba", ze ako si to predstavuje takto hovnit