1UnitedPower: 2 Cent Anekdote

Beitrag lesen

Meine Herren!

Wenn die Eingriffe in einer Elternklasse an Stellen stattfinden, an denen sie eigentlich nicht geplant waren, sollte man besser die ganze Klasse neu erstellen.

ACK. Vererbung ist sowieso eine sehr starke Form der Assoziation, die man oft nicht haben möchte, und am wenigsten über Paket-Grenzen hinaus. Ich erinnere mich da an eine Typo3-Erweiterung, die ich mal implementieren musste, die a) PDFs mit einem Wasserzeichen versieht und b) den Schreibzugriff darauf sperrt. Für die Auslieferung der PDF-Dateien war bereits eine Erweiterung im Einsatz und es waren auch schnell zwei Erweiterungen gefunden, die darauf aufbauend a) und b) gelöst haben – ABER beide Lösungen haben unnötiger Weise von der selben Basis-Klasse geerbt und waren deshalb nur sehr schwierig zusammen zu führen. Ich habe damals die fast fertigen Lösungen umgestrickt und die Vererbung aufgelöst.

Always prefer composition over inheritance.

~ GOF

--
“All right, then, I'll go to hell.” – Huck Finn