Reginald Dummschwatz: Static in MVC-Architektur?

Beitrag lesen

Das Problem an Vererbung ist, dass es zwei Klassen direkt und hart miteinander koppelt ohne eine Möglichkeit, diese in irgendeiner Form voneinander zu trennen.

Das ist nicht das Problem, das ist eher Sinn der Sache. Eine Unterklasse erweitert die Funktionalität ihrer Elternklassen. Die Klassen gehören zusammen, da sollte es keinen Grund geben, sie trennen zu wollen, mehr noch: Idealerweise lassen sie sich gar nicht trennen, weil sie funktional aufeinander aufbauen.

Was bringt es einem, einen Validator zu schreiben, der zwingend von einer vorliegenden abstrakten Klasse deren Infrastruktur-Implementierung erben muss, wenn man die gar nicht braucht?

Dann ist die Elternklasse oder die ganze Struktur falsch aufgebaut. Das ist aber kein Problem der Vererbung, das ist ein Problem schlechter Programmierung (oder von Erbsenzählerei – brauche ich zwei oder drei von zehn Methoden nicht, ist nicht gleich die ganze Klasse schlecht). Programmteile, die sich um zu viele Sachen kümmern, gab es schon vor Klassen und Objekten, da waren es dann halt Funktionen mit einem Dutzend Parametern.

Ihr schiebt schlechte Programmierung in Form von nicht durchdachten, schlecht strukturiertem Programmaufbau der Vererbung in die Schuhe.

ohne Zeugs drumrum.

Derselbe schlechte Programmierer, der alles erschlagenden Klassen bastelt, wird ein Konvolut an Funktiönchen fabrizieren, das so unübersichtlich ist, dass eines nicht zum anderen passt.
Mir fällt da als besonders abschreckendes Beispiel spontan PHP mit seinem Irrwitz an Tausenden (?) eingebauter Funktionen ein. Da kann man sich einzeln raussuchen, was man braucht, ohne "Zeugs" drumherum. Aber ist das wirklich pauschal besser, Vererbung pauschal schlechter? Ich denke nicht. Es kommt auf Bedarf und Umsetzung an. Mist kann man mit jeder Technik bauen, das macht keine per se schlechter.