Warum Komposition gegenüber Vererbung bevorzugen? Welche Kompromisse gibt es für jeden Ansatz? Wann sollten Sie die Vererbung der Komposition vorziehen?
Viele Vorlagensprachen haben "Slots" - oder "Yield" -Anweisungen, die eine Art Umkehrung der Steuerung ermöglichen, um eine Vorlage in eine andere zu verpacken. Angular hat die Option "transclude" . Rails hat eine Ertragserklärung . Wenn React.js eine Ertragsangabe hätte, würde dies folgendermaßen aussehen: var Wrapper = React.createClass({ render: function() { …
Ich bin mir der konzeptionellen Unterschiede zwischen Aggregation und Komposition bewusst. Kann mir jemand anhand von Beispielen den Implementierungsunterschied in Java erklären?
In F # ist die Verwendung des Pipe-Forward-Operators |>ziemlich häufig. In Haskell habe ich jedoch nur die Funktionszusammensetzung gesehen (.), die verwendet wurde. Ich verstehe, dass sie verwandt sind , aber gibt es einen sprachlichen Grund, warum Pipe-Forward in Haskell nicht verwendet wird, oder ist es etwas anderes?
Wenn ich zwei Schnittstellen habe, die beide in ihren Zwecken sehr unterschiedlich sind, aber dieselbe Methodensignatur haben, wie kann ich eine Klasse dazu bringen, beide zu implementieren, ohne gezwungen zu sein, eine einzige Methode zu schreiben, die für beide Schnittstellen dient, und eine verschlungene Logik in die Methode zu schreiben …
Es ist bekannt, dass anwendungsbezogene Funktoren unter Komposition geschlossen sind, Monaden jedoch nicht. Ich hatte jedoch Probleme, ein konkretes Gegenbeispiel zu finden, das zeigt, dass Monaden nicht immer komponieren. Diese Antwort gibt [String -> a]als Beispiel eine Nicht-Monade. Nachdem ich ein bisschen damit herumgespielt habe, glaube ich es intuitiv, aber …
In der Java-Welt (genauer gesagt, wenn Sie keine Mehrfachvererbung / Mixins haben) ist die Faustregel ganz einfach: "Bevorzugen Sie die Objektzusammensetzung gegenüber der Klassenvererbung". Ich würde gerne wissen, ob / wie es geändert wird, wenn Sie auch Mixins berücksichtigen, insbesondere in Scala? Werden Mixins als ein Weg der Mehrfachvererbung oder …
Ich habe in letzter Zeit SOLID in C # auf ein ziemlich extremes Niveau gebracht und irgendwann festgestellt, dass ich heutzutage im Wesentlichen nicht viel anderes mache, als Funktionen zu komponieren. Und nachdem ich vor kurzem wieder angefangen hatte, mir F # anzuschauen, dachte ich mir, dass dies wahrscheinlich die …
Ich höre (und lese auf dieser Seite) viel über "Komposition gegenüber Vererbung bevorzugen". Aber was ist Zusammensetzung? Ich verstehe die Vererbung aus der Sicht von Person: Säugetier: Tier, aber ich kann die Definition von Kompostion nirgendwo wirklich sehen. Kann mich jemand ausfüllen?
Dies ist der Code, auf den ich irgendwo gestoßen bin, aber ich möchte wissen, wie das funktioniert: findIndices :: (a -> Bool) -> [a] -> [Int] findIndices _ [] = [] findIndices pred xs = map fst (filter (pred . snd) (zip [0..] xs)) Ausgabe: findIndices (== 0) [1,2,0,3,0] == …
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.