Frage

Eine Metapher, dass mit mir stecken, wenn nicht-DI-Systemen Programmierung ist „eine Person spielt mit seinem / ihrem Spielzeug“. Eine Person ist ein Objekt und die Person, die Spielzeug etwas zu sein, dass das Objekt erzeugt, speichert, initialisiert und manipuliert. Das Spielzeug kann Ereignisse auslösen, wenn sie einen bestimmten Zustand erreichen, aber sie wissen nichts über die Person, mit ihnen; sie sind nur kleine schwarze Kästchen mit Steuerschaltern, die ihre Schnittstellen bilden. Die Person kann für Veranstaltungen aus dem Spielzeug und reagieren hören durch ihre Schnittstellen zu manipulieren. Die Person kann tun, was er / sie mit seinem / ihrem Spielzeug will, aber er / sie sollte wohl nicht mit ihren Innereien geht einmischen, weil sie brechen könnten.

Die Verwüstung, dass DI auf meine Metapher wreaks ist, dass es das Spielzeug in bewusste Wesen verwandelt, die ihre Besitzer wissen, die Person, die sie verwenden. Das Spielzeug kann diese Person manipulieren, aber die Person weiß nichts davon, wie sie arbeiten und nicht einmal kümmern. Die Person besitzt nur das Spielzeug und erwartet, dass die Spielzeuge, ihn zu manipulieren / sie in das eigene Zufriedenheit Spielzeug.

WTF ?? Das klingt schrecklich !!
Was ist eine gute mentale Metapher sie verwendet haben, zu denken, wie DI Systeme?

War es hilfreich?

Lösung

Die SOLID motivierende Bilder eine gute Quelle sind.

Metapher des Dependency Injection Prinzip

Andere Tipps

Denken Sie einen Herrn und sein Butler. Der Butler (die DI-Framework) bietet den Herren alle Dienste (externe Abhängigkeiten) er muss bei Bedarf (und einige, wie der Kaffee am Morgen, auf „Initialisierung“ :-)); der Herr (Klasse) verbraucht nur die Dienste und kümmert sich nicht darum, woher sie kommen, solange sie seine Anforderungen erfüllen (implementieren bestimmte Schnittstelle).

Oder wenn Sie es näher an die Metapher machen wollen, Ihre Klasse ist das Kind, ist der DI Rahmen der Mutter, und die Spielzeuge sind die anderen Komponenten. Das Kind ist es egal, wo das Spielzeug kommen, solange sie die Art und Weise spielen sie mit ihnen wollen.

Aus meiner Sicht ist der Unterschied zwischen DI und nicht-DI in Bezug auf Ihre Metapher ist mit nicht-DI-Systemen, jede Person macht ihre eigenen Spielsachen - sie wissen, wie sie zu machen und sie können nur das Spielzeug verwenden sie machen. Mit DI verwendet die Person das Spielzeug sie gegeben sind. Sie wissen nicht, wie sie zu machen, aber sie können mit irgendwelchen Spielzeugen spielen sie so lange gegeben werden, wie sie wissen, wie das Spielzeug benimmt.

Legos.

Denken Sie an einem Lego-Baustein als Softwarekomponente, die entlarvt eine oder mehr Schnittstellen (die kleinen Beulen oben) und eine oder mehr Setter oder Konstruktorargumente (die Löcher auf der Unterseite).

Wenn Sie eine Schachtel mit Legos kaufen, die Blöcke nicht kommen vormontiert (hard-wired). Sie sind unabhängige Komponenten. Sie sie dann montieren (Draht ihnen) durch Schnittstellen (Bumps) auf Setter / Konstrukteure (Löcher) zu verbinden. Jeder Block weiß nichts über die anderen Blöcke direkt. Etwas anderes als der Block wird benötigt, um sie zu montieren - (. Oder main () oder eine Feder-Konfigurationsdatei, etc)., Dass Sie ist

ich weiß ... das bricht ein wenig nach unten, weil Legos hat weitgehend eine einheitliche Schnittstelle - aber es funktioniert für mich: -)

Ich benutze Computersystem. Sie haben einen Systemblock, und Sie (a DI) verbinden, um es einen Monitor, eine Tastatur und eine Maus. Der Systembaustein weiß nur, dass ein Monitor ist ein DVI-Gerät, aber kümmert sich nicht, welcher Monitor genau es ist. Es weiß, wie USB-Maus zu verwenden, aber nicht wissen oder Pflege Wetter es ist eine optische oder eine Kugelroll Maus.

Sie -. DI Rahmen
Systembaustein - ist das System bedient wird
. Monitor / Maus / Tastatur - Leistungen von DI (Sie) mit dem Systemblock.

Die Spielzeuge sind nicht bewusst. Sie lassen nur die Person Krawatte Bits Schnur an Haken, und wenn bestimmte Dinge passieren, die Haken drehen und die Kette wird gezogen auf, so dass die Person weiß etwas passiert ist.

Eine DI Metapher, dass mir gesagt wurde, war es zu beziehen war, dass von einem CD-Player. Der Spieler kümmert sich nicht darum, was CD Sie setzen; jedoch jede CD, die Sie in den Player spritzen bietet verschiedene Funktionen auf, was der Spieler erfordert von ihm.

Es ist alles über Samurais und Waffen. Versuchen Sie Check-out ninject: http://ninject.org/ . Gehen Sie auf die „Besuchen Sie das Dojo“ Zeichen für eine interessante Metapher. Nicht sicher, ob dies ist, was Sie gemeint, aber es ist dennoch kreativ.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top