Diskussion:Dependency Injection/Archiv
Existierende Frameworks
HiveMind wurde von Apache als "retired" in den "attic" verschoben und statt dessen empfiehlt Apache ihr Tapestry-Projekt, dass allerdings einen Servlet-Container (wie tomcat) voraussetzt. Ggf sollte HiveMind gestrichen und Tapestry ergänzt werden. Sehr nützlich wären auch die links zu den jeweiligen Projekten ;-) ~~---- (nicht signierter Beitrag von 109.85.102.245 (Diskussion | Beiträge) 21:00, 26. Jan. 2010 (CET))
- habe Hivemind gelöscht. Links im Artikel können wir gemäß WP:Weblinks nicht machen. --Sebastian.Dietrich 23:37, 26. Jan. 2010 (CET)
- Archivierung dieses Abschnittes wurde gewünscht von: Sebastian.Dietrich ✉ 10:47, 4. Jan. 2013 (CET)
Einleitung
- Die ist etwas zu lang, ja macht eigentlich den kompletten Artikeltext aus. Kürzen und Weiterführendes in einen Abschnitt wie Funktionsweise verlagern, brächte Abhilfe dafür.
- „Insbesondere muss es, um die entsprechenden Objekte erzeugen zu können, ihre konkrete Implementierung kennen.“ möchte ich bezweifeln. Was es kennen muss sind die Schnittstelle(n). Nachtrag: Ich verstehe. Auf en:Dependency Injection heißt es: „the details of a particular implementation. Damit ist im Weiteren die Funktionsweise gemeint, nicht die (komplette) Implementierung an sich.
---Geri, ✉ 20:38, 15. Mai 2011 (CEST)
- Archivierung dieses Abschnittes wurde gewünscht von: Sebastian.Dietrich ✉ 10:47, 4. Jan. 2013 (CET)
Dependency Injection != DI Container
Der englische Artikel beschreibt sehr richtig, dass auch manuelles DI möglich und sinnvoll ist. Dependency Injection muss nicht zwingend über DI Container/Sprachfeatures gestützt sein. Von daher wird in diesem Artikel zu viel Gewicht auf Frameworks gesetzt und zu wenig auf das eigentliche Prinzip (Parameterübergabe gegen eine Schnittstelle). --85.178.223.163 09:11, 16. Aug. 2012 (CEST)
- Da hast du recht. Man könnte z.B. die Liste in Liste von Dependency Injection Frameworks auslagern. Einwände? --Sebastian.Dietrich ✉ 11:28, 16. Aug. 2012 (CEST)
- Archivierung dieses Abschnittes wurde gewünscht von: Sebastian.Dietrich ✉ 10:47, 4. Jan. 2013 (CET)
Sourcecode
Finde es prinzipiell gut, dass es Sourcecode Beispiele gibt. Aber bitte a) kurz und knackig (und z.B. keine Leerzeilen dazwischen) b) entweder Pseudocode (also z.B. kein public, void, var, class, interface ...) oder richtiger Code (also z.B. kein "vom Typ"). Pseudocode ist auch bitte nicht "partielle Übersetzung von Keyworten aus Java ins Deutsche" Wenns schon Pseudocode sein muss, dann bitte so wie in Pseudocode. --Sebastian.Dietrich ✉ 20:09, 5. Feb. 2013 (CET)
- Ohne Leerzeilen ists deutlich besser, aber immer noch unlesbar. Deutsch-Englisch Mischung ist fürchterlich. Entweder alles auf Deutsch ("öffentlich", "rückgabefrei", "Variable", "Klasse", "Schnittstelle", "vom Typ") was mMn extrem ungewohnt ist oder alles auf Englisch. Dann bist aber eh wieder bei Java... --Sebastian.Dietrich ✉ 12:44, 6. Feb. 2013 (CET)
- Was redest Du schon wieder von „Java“? Das ist doch längst vom Tisch. interface, class, public, void sind als Schlüsselworter von vielen Programmiersprachen wohlbekannt. Die einzudeutschen ist höchst verwirrend, irritierend, kurz gesagt – sorry, mir fällt gerade nichts Höflicheres ein: Käse. Warum die beiden Letzteren gerade hier sinnvoll sind, habe ich schon im Bearb.kommentar geschrieben, was Du Dich nach wie vor beharrlich zu ignorieren entschieden hast. Ich werde mal eine WP:3M einholen. --Geri, ✉ Mentor 19:56, 6. Feb. 2013 (CET)
- 1) längst vom Tisch ist es nur in deiner Vorstellung. Ich spreche mich explizit _für_ die Verwendung von Java für die Beispiele aus. Dein Grund "DI gibt es in anderen Sprachen auch" ist keine Grund es in irgendeinen Pseudocode umzuwandeln, der (siehe Punkt 3) völlig abstrus ist.
- 2) public und void sind nicht nötig. Dependency Injection funktioniert auch mit protected bzw. in Sprachen, die keine Modifier kennen. DI funktioniert auch mit Rückgabewerten, ergo ist auch void unnötig.
- 3) Ich habe nichts gegen Pseudocode, wenn er besser als gängige Programmiersprachen lesbar ist. Das was du hier erfunden hast ist (wie ich schon oben gesagt habe & du bisher keine Antwort darauf gefunden hast) eine "partielle Übersetzung von Java ins Deutsche" angereichert mit einem VB Element: Java mit "vom Typ" und "var" zur Verwirrung. Entweder du erfindest einen lesbaren Pseudocode mit rein Englischen oder rein Deutschen Keywords, oder du lässt es bleiben. Ich habs auf rein Deutsch umgestellt. Ist somit sprachlich konsistenter als dein Vorschlag aber mMn schlechter lesbar (da total ungewohnt und völlig unbekannt) als wenn gleich Java (verstehen im Gegensatz zu deinem Pseudocode viele Leser) oder irgendeine andere OO Programmiersprache (verstehen zwar weniger als Java, aber immerhin auch noch millionenfach mehr Leute als deinen Pseudocode) verwendet werden würde.
- 3M ist gut. --Sebastian.Dietrich ✉ 12:08, 7. Feb. 2013 (CET)
- Was redest Du schon wieder von „Java“? Das ist doch längst vom Tisch. interface, class, public, void sind als Schlüsselworter von vielen Programmiersprachen wohlbekannt. Die einzudeutschen ist höchst verwirrend, irritierend, kurz gesagt – sorry, mir fällt gerade nichts Höflicheres ein: Käse. Warum die beiden Letzteren gerade hier sinnvoll sind, habe ich schon im Bearb.kommentar geschrieben, was Du Dich nach wie vor beharrlich zu ignorieren entschieden hast. Ich werde mal eine WP:3M einholen. --Geri, ✉ Mentor 19:56, 6. Feb. 2013 (CET)
Von 3M kommend ich finde es unabdingbar, dass "echter" Code statt Pseudocode für Beispiele genutzt wird. Java ist da ein recht gutes Mittel, alternativ auch PHP. Wenn dem Leser Pseudocode oder eine Fantasiesprache aufgetischt wird, fragt er sich ohnehin, welche Programmiersprache das ist, was nicht wirklich förderlich ist. Andere OOP-Artikel enthalten innerhalb der WP auch keinen Pseudocode. Kurz und knackig: Kein Pseudocode . --Nightfly | Disk 12:34, 7. Feb. 2013 (CET)
Programmiersprachenchauvinismus ist genau das, was ich vermeiden wollte. Denn mit gutem Recht kommt dann der nächste C++-, C#-, PHP-, Javascript- etc.-Programmierer und möchte auch Beispiele in „seiner“ Sprache sehen. Das das dann ausartet, nicht im Sinne des Erfinders ist, ist wohl leicht abzusehen.
WP ist auch kein How-to und auch, wie S.D. richtig sagte, keine Codesammlung. Hier soll ein Konzept allgemeingültig, abstrakt beschrieben werden und das geht nun mal gut in einer abstrakten Formulierung (die real so nicht existiert, sich aber an Reales anlehnt – so wie es auch in Pseudocode beschrieben steht).
Mir ist aber meine Zeit zu kostbar, um mich noch weiter derart damit rumzuschlagen. Es ist auch nicht der erste Artikel von dem ich mich achselzuckend abwende. Ich trage zwar gern etwas bei, aber dieses über die Jahre zunehmende rumdiskutieren und rechtfertigen müssen, dafür, dass man sich Gedanken gemacht hat, dass man etwas beigetragen hat, ist auf Dauer mühsam. Es gibt wichtigere und schönere Dinge im Leben als die WP. Salü --Geri, ✉ Mentor 00:37, 8. Feb. 2013 (CET)
- Du diskutierst also lieber jahrelang, um deinen Wunsch nach neutralem Pseudocode durchzusetzen, anstatt zuzulassen, dass ein Artikel Beispiele in verschiedenen Programmiersprachen enthält? Seltsame Einstellung... --Nightfly | Disk 00:50, 8. Feb. 2013 (CET)
- Eben nicht (mehr). Weil Leute, die etwas nicht verstehen oder es missverstehen wollen, noch viel mühsamer sind. --Geri, ✉ Mentor 02:14, 8. Feb. 2013 (CET)
Das Beispiel, wie es jetzt zu sehen ist, ist m.E. nicht tragbar. Die eingedeutschten Begriffe, die überflüssigen Zugriffsmodifikatoren und die seltsame Namensgebung sind eher verwirrend als aufklärend. --Nightfly | Disk 00:57, 8. Feb. 2013 (CET)
Beispiel wurde wie von mir und Nightfly vorgeschlagen auf Java Sourcecode umgeändert. --Sebastian.Dietrich ✉ 21:47, 11. Feb. 2013 (CET)
- Archivierung dieses Abschnittes wurde gewünscht von: Sebastian.Dietrich ✉ 21:47, 11. Feb. 2013 (CET)
Weitere 3M: Ich verstehe die Argumente für Pseudocode, würde ihn aber nur dann anwenden, wenn er das Konzept auch tatsächlich leichter verständlich und vor allem allgemeingültiger darstellt. Beides sehe ich hier nicht gegeben, und von daher würde ich auch Java-Code (oder irgendeine andere Programmiersprache) vorziehen. Ich fände es aber sehr sinnvoll explizit zu erwähnen, dass dies ein Java-Code ist, gerade für diejenigen, die sich in damit nicht auskennen. Gruß, Darian (Diskussion) 17:39, 18. Feb. 2013 (CET)