Inversion of Control (IoC) ist ein abstraktes Prinzip, das einen Aspekt einiger Softwarearchitekturentwürfe beschreibt, bei denen der Steuerungsfluss eines Systems im Vergleich zur prozeduralen Programmierung invertiert ist.
Ich habe viele Referenzen zu Dependency Injection (DI) und Inversion Of Control (IOC) gesehen, aber ich weiß nicht wirklich, ob es einen Unterschied zwischen ihnen gibt oder nicht. Ich würde gerne einen oder beide verwenden, aber ich bin ein wenig verwirrt darüber, wie sie sich unterscheiden.
Die Wörter invertoder controlwerden überhaupt nicht verwendet, um Inversion of Control in den Definitionen zu definieren, die ich gesehen habe. Definitionen Wikipedia Inversion of Control (IoC) ist eine Programmiertechnik, die hier als objektorientierte Programmierung ausgedrückt wird. Dabei wird die Objektkopplung zur Laufzeit durch ein Assembler-Objekt gebunden und ist zur Kompilierungszeit …
Ich entwerfe ein neues System und möchte wissen, was Inversion of Control (IOC) ist und was noch wichtiger ist, wann es verwendet werden soll. Muss es mit Interfaces implementiert werden oder kann es mit Klassen durchgeführt werden?
Ich arbeite in einem Team, in dem der Teamleiter ein virulenter Verfechter der SOLID-Entwicklungsprinzipien ist. Es fehlt ihm jedoch viel Erfahrung, um komplexe Software aus der Tür zu bekommen. Wir haben eine Situation, in der er SRP auf eine bereits recht komplexe Codebasis angewendet hat, die jetzt sehr stark fragmentiert …
Was ist der Zweck von IOC-Containern? Die kombinierten Gründe dafür können auf das Folgende vereinfacht werden: Bei Verwendung der OOP / SOLID-Entwicklungsprinzipien wird die Abhängigkeitsinjektion unordentlich. Entweder haben Sie die obersten Einstiegspunkte, die Abhängigkeiten für mehrere Ebenen unter sich verwalten und Abhängigkeiten rekursiv durch die Konstruktion leiten, oder Sie haben …
Ich habe mehr über das Inversion-of-Control-Prinzip und Dependency-Injection als dessen Implementierung gelesen und bin mir ziemlich sicher, dass ich es verstehe. Es scheint im Grunde genommen zu heißen, dass Sie Ihre Klassenmitglieder nicht als Instanziierungen innerhalb der Klasse deklarieren. Vielmehr sollten die Instantiierungen über den Konstruktor übergeben und zugewiesen werden. …
Ich versuche, die Abhängigkeitsinjektion in einer relativ großen Anwendung zu implementieren, habe jedoch keine Erfahrung damit. Ich habe das Konzept und einige verfügbare Implementierungen von IoC- und Abhängigkeitsinjektoren wie Unity und Ninject studiert. Es gibt jedoch eine Sache, die mir entgeht. Wie soll ich die Instanzerstellung in meiner Anwendung organisieren? …
Gibt es trotz seiner Beliebtheit empirische Belege dafür, dass Dependency Injection (und / oder die Verwendung eines DI-Containers) beispielsweise bei der Reduzierung der Fehleranzahl, der Verbesserung der Wartbarkeit oder der Erhöhung der Entwicklungsgeschwindigkeit bei echten Softwareprojekten hilft?
Ich bin ein großer Fan von DI / IOC. Es ist großartig, um harte Abhängigkeiten zu verarbeiten / zu abstrahieren, und erleichtert das Leben ein wenig. Allerdings habe ich ein kleines Problem damit, das ich nicht sicher bin, wie ich es lösen soll. Die Grundidee in DI / IOC ist, …
Ich habe verschiedene IoC-Container (Castle.Windsor, Autofac, MEF usw.) für .Net in einer Reihe von Projekten verwendet. Ich habe festgestellt, dass sie häufig missbraucht werden und eine Reihe von schlechten Praktiken fördern. Gibt es etablierte Praktiken für die Verwendung von IoC-Containern, insbesondere bei der Bereitstellung einer Plattform / eines Frameworks? Mein …
Ich habe mehrere empfohlene Verwendung von IoC-Containern im Code gesehen. Die Motivation ist einfach. Nehmen Sie den folgenden in Abhängigkeit injizierten Code: class UnitUnderTest { std::auto_ptr<Dependency> d_; public: UnitUnderTest( std::auto_ptr<Dependency> d = std::auto_ptr<Dependency>(new ConcreteDependency) ) : d_(d) { } }; TEST(UnitUnderTest, Example) { std::auto_ptr<Dependency> dep(new MockDependency); UnitUnderTest uut(dep); //Test here …
Ich entschuldige mich, wenn dies wie eine weitere Wiederholung der Frage erscheint, aber jedes Mal, wenn ich einen Artikel zum Thema finde, wird meist nur darüber gesprochen, was DI ist. Also, ich bekomme DI, aber ich versuche zu verstehen, dass ein IoC-Container benötigt wird, in den sich offenbar jeder hineinzuversetzen …
Ich habe mich in letzter Zeit mit "organisierterer" Programmierung befasst und gelernt, dass ich auf eine Schnittstelle programmieren sollte, nicht auf eine Implementierung. Wäre es in diesem Sinne besser, ein Projekt in Schnittstellen zu "skizzieren", bevor Sie, wo möglich, die Implementierung dafür schreiben? Und wenn dies der Fall ist, sollte …
Ich habe gelernt, Test Driven Development (TDD), Dependency Injection (DI) und Inversion of Control (IoC) gleichzeitig durchzuführen. Wenn ich mit TDD Code schreibe, verwende ich immer DI in den Konstruktoren meiner Klasse. Ich frage mich, ob dies daran liegt, wie ich TDD gelernt habe, oder ob dies eine natürliche Nebenwirkung …
Im vergangenen Jahr habe ich ein neues System mit Dependency Injection und einem IOC-Container erstellt. Das hat mir viel über DI beigebracht! Ich halte es jedoch auch nach dem Erlernen der Konzepte und Muster für eine Herausforderung, Code zu entkoppeln und einen IOC-Container in eine Legacy-Anwendung einzuführen. Die Anwendung ist …
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.