Als «composition» getaggte Fragen


5
Warum sollte ich Kompositionen der Vererbung vorziehen?
Ich habe immer gelesen, dass Kompositionen der Vererbung vorzuziehen sind. Ein Blogbeitrag über andere Arten zum Beispiel befürwortet die Verwendung von Komposition anstelle von Vererbung, aber ich kann nicht sehen, wie Polymorphismus erreicht wird. Aber ich habe das Gefühl, wenn Leute sagen, sie bevorzugen Komposition, dann meinen sie wirklich, sie …


5
Wie definiert man, dass eine Methode eine stärkere Verpflichtung überschreiben kann als die Definition, dass eine Methode aufgerufen werden kann?
Von: http://www.artima.com/lejava/articles/designprinciples4.html Erich Gamma: Ich denke, das stimmt auch nach zehn Jahren noch. Vererbung ist eine coole Möglichkeit, das Verhalten zu ändern. Aber wir wissen, dass es spröde ist, weil die Unterklasse leicht Annahmen über den Kontext treffen kann, in dem eine Methode aufgerufen wird, die sie überschreibt. Aufgrund des …

2
Was bedeutet "komponiert nicht"?
Ich sehe viele Texte, insbesondere funktionale Programmiertexte, die behaupten, dass bestimmte CS-Konzepte "nicht komponieren" . Beispiele sind: Sperren komponieren nicht, Monaden komponieren nicht. Es fällt mir schwer, genau die Bedeutung dieses Satzes zu finden. Wenn ich an Komposition denke, denke ich entweder an Funktionskomposition oder an Objektaggregation (wie in "Komposition …

8
"Komposition vor Vererbung" - Ist der einzige Grund, sich gegen Signaturänderungen zu verteidigen?
Diese Seite befürwortet Komposition über Vererbung mit dem folgenden Argument (umformuliert in meinen Worten): Eine Änderung der Signatur einer Methode der Oberklasse (die in der Unterklasse nicht überschrieben wurde) führt an vielen Stellen zu zusätzlichen Änderungen, wenn Vererbung verwendet wird. Wenn wir jedoch Komposition verwenden, befindet sich die erforderliche zusätzliche …

2
Wie vermeide ich es, viele Passthrough-Funktionen in einen Wrapper zu schreiben?
Ich habe eine Klasse, die eine andere Klasse eines gemeinsamen Basistyps umschließt. Da die Basistyp-Schnittstelle ziemlich groß ist, müssen viele Passthrough-Funktionen geschrieben werden. Ich suche nach einem Weg, dies zu vermeiden. Machen wir ein Beispiel: Car / \ Volvo VolvoWithTrailer Jetzt muss ich jede Funktion in der Autoschnittstelle für VolvoWithTrailer …


3
Zusammensetzung über Vererbung aber
Ich versuche mir Software-Engineering beizubringen und stoße auf widersprüchliche Informationen, die mich verwirren. Ich habe OOP gelernt und was abstrakte Klassen / Schnittstellen sind und wie man sie verwendet, aber dann lese ich, dass man "Komposition gegenüber Vererbung bevorzugen" sollte. Ich verstehe Komposition ist, wenn eine Klasse ein Objekt einer …

4
Ist die Abhängigkeitsinjektion von Hand eine bessere Alternative zu Zusammensetzung und Polymorphismus?
Erstens bin ich ein Programmierer der Einstiegsklasse. Tatsächlich beende ich im Sommer ein AS-Studium mit einem Abschlussprojekt. Wenn ich in meinem neuen Job kein Projekt für mich habe (sie warten darauf, das Team mit weiteren Neueinstellungen zu füllen), habe ich Bücher zum Lesen und Lernen erhalten, während ich warte - …


5
Sollte ich in diesem Szenario Komposition oder Vererbung bevorzugen?
Betrachten Sie eine Schnittstelle: interface IWaveGenerator { SoundWave GenerateWave(double frequency, double lengthInSeconds); } Diese Schnittstelle wird von einer Reihe von Klassen implementiert, die Wellen unterschiedlicher Form erzeugen (z. B. SineWaveGeneratorund SquareWaveGenerator). Ich möchte eine Klasse implementieren, die SoundWavebasierend auf Musikdaten und nicht auf Rohtondaten generiert . Es würde den Namen …

1
Gibt es eine Situation, in der es besser wäre, schwache Referenzen anstelle einer einfachen Komposition zu verwenden?
Obwohl in den Java-Dokumenten angegeben ist, dass schwache Referenzen in erster Linie zur Kanonisierung von Zuordnungen dienen, finden Sie im Internet viele , viele , viele Leute, die angeben, dass die WeakHashMap perfekt zum Speichern von Objektmetadaten während ihrer Lebensdauer geeignet ist. Es stört jedoch niemanden, ein verständliches UND angemessenes …


9
Vererbung vs Zusammensetzung für Schachfiguren
Eine schnelle Suche in diesem Stapelaustausch zeigt, dass die Komposition im Allgemeinen als flexibler als die Vererbung angesehen wird, aber wie immer vom Projekt usw. abhängt und es Zeiten gibt, in denen die Vererbung die bessere Wahl ist. Ich möchte ein 3D-Schachspiel machen, bei dem jede Figur ein Netz hat, …

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.