Als «multiple-inheritance» getaggte Fragen

9
Gibt es einen „echten“ Grund, warum Mehrfachvererbung gehasst wird?
Die Idee, mehrere Vererbungen in einer Sprache zu unterstützen, hat mir immer gefallen. Meistens wird jedoch absichtlich darauf verzichtet, und der vermeintliche "Ersatz" sind Schnittstellen. Interfaces decken einfach nicht den gleichen Grund ab, den Mehrfachvererbung hat, und diese Einschränkung kann gelegentlich zu mehr Boilerplate-Code führen. Der einzige Grund, den ich …


6
Verstößt die Mehrfachvererbung gegen das Prinzip der Einzelverantwortung?
Wenn Sie eine Klasse haben, die von zwei verschiedenen Klassen erbt, bedeutet dies nicht, dass Ihre Unterklasse automatisch (mindestens) zwei Dinge erledigt, eines von jeder Superklasse? Ich glaube, es gibt keinen Unterschied, wenn Sie mehrere Schnittstellenvererbung haben. Bearbeiten: Um klar zu sein, glaube ich, dass, wenn Unterklassen mehrerer Klassen gegen …

2
Wie vermeiden Traits in Scala den "Diamantfehler"?
(Hinweis: Aus offensichtlichen Gründen habe ich im Titel 'error' anstelle von 'problem' verwendet.;)). Ich habe ein paar grundlegende Lektüren zu Traits in Scala gemacht. Sie ähneln Interfaces in Java oder C #, ermöglichen jedoch die Standardimplementierung einer Methode. Ich habe mich gefragt: Kann dies nicht den Fall des "Diamantenproblems" verursachen, …


7
Anwendungsfälle für die mehrfache Vererbung
Java lässt die Mehrfachvererbung aus dem Grund aus, dass das Designziel, die Sprache einfach zu halten, umgangen wird . Ich frage mich, ob Java (mit seinem Ökosystem) wirklich "einfach" ist. Python ist nicht komplex und mehrfach vererbt. Also ohne zu subjektiv zu sein, ist meine Frage ... Was sind die …




1
Verwenden von Pythons Method Resolution Order für die Abhängigkeitsinjektion - ist das schlecht?
Ich habe gesehen, wie Raymond Hettingers Pycon "Super Considered Super" sprach, und ein wenig über Pythons MRO (Method Resolution Order) gelernt, das eine Klasse "Eltern" -Klassen auf deterministische Weise linearisiert. Wir können dies zu unserem Vorteil nutzen, wie im folgenden Code, um die Abhängigkeitsinjektion durchzuführen. Also jetzt möchte ich natürlich …


Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.