Heim >PHP-Framework >Denken Sie an PHP >ThinkPHP-Container-Umkehrung der Kontrolle und Abhängigkeitsinjektion

ThinkPHP-Container-Umkehrung der Kontrolle und Abhängigkeitsinjektion

咔咔
咔咔Original
2020-10-10 11:27:492091Durchsuche

Der Name Dependency Injection und Inversion of Control klingt verwirrend. Nachdem Sie diesen Artikel gelesen haben, werden Sie wissen, was es ist.

3. Wie man die Umkehrung der Kontrolle und die Abhängigkeitsinjektion versteht? Tatsächlich beziehen sich diese beiden auf dasselbe, nur auf eine Art Programmieridee und erhaben. Was ist also ein Behälter? Um es direkt zu verstehen: Ein Behälter ist ein Ding, das Dinge enthält. In der Programmierung sind unsere gemeinsamen Variablen und Objekteigenschaften allesamt Container. Was in einem Container enthalten sein kann, hängt ganz von der Definition des Containers ab.

Wir sprechen jetzt jedoch von einer anderen Art von Container. Er speichert weder Text noch Werte, sondern viele erweiterte Funktionen die Entkopplung zwischen Codes, Abhängigkeitsinjektion.

Warum gibt es also zwei Konzepte, warum sprechen wir über Kontrollumkehr und Abhängigkeitsinjektion? Wie oben erwähnt, beziehen sie sich eigentlich auf dasselbe, werden aber aus unterschiedlichen Blickwinkeln beschrieben.

So wie du der Sohn deines Vaters bist, bist du immer noch der Enkel deines Großvaters. Sowohl Sohn als auch Enkel beziehen sich auf dieselbe Person. Es geht lediglich darum, das Problem aus einer anderen Perspektive zu betrachten.

Kontrollumkehr

betrachtet das Problem aus der Perspektive des Containers. Der Container steuert die Anwendung, und der Container injiziert umgekehrt die externen Ressourcen, die die Anwendung benötigt.

Abhängigkeitsinjektion

Betrachten Sie das Problem aus der Perspektive der Anwendung. Die Anwendung ist darauf angewiesen, dass der Container die benötigten externen Ressourcen erstellt und einfügt.

Funktion

wird hauptsächlich verwendet, um den Grad der Kopplung zwischen Codes zu verringern.

Trennen Sie effektiv Objekte und externe Ressourcen, die von der Anwendung benötigt werden.

Die folgenden zwei Bilder können das Problem deutlich erklären

ThinkPHP-Container-Umkehrung der Kontrolle und AbhängigkeitsinjektionThinkPHP-Container-Umkehrung der Kontrolle und Abhängigkeitsinjektion

Lassen Sie mich Ihnen einen einfachen Fall geben

Definieren Sie zwei Klassen als Person und Auto, Instanz in Person und Call-Pay-in-Car-Methode.

ThinkPHP-Container-Umkehrung der Kontrolle und AbhängigkeitsinjektionDann rufen Sie es im Controller auf und das gedruckte Ergebnis muss die von Car zurückgegebene 123 sein, damit dies nicht gedruckt wird.

ThinkPHP-Container-Umkehrung der Kontrolle und Abhängigkeitsinjektion
Hier Bildbeschreibung einfügen

Zu diesem Zeitpunkt ändern wir den Code und übergeben die Car-Klasse direkt an die Person-Klasse und verwenden das übergebene Objekt direkt, um die entsprechende Methode in der Person-Klasse aufzurufen.

ThinkPHP-Container-Umkehrung der Kontrolle und AbhängigkeitsinjektionDies ist nur ein einfacher Implementierungsprozess, um den Weg für den Leserahmen-Containercode zu ebnen. Die Containerinjektion im Framework wird später ausführlich erläutert.

Beharrlichkeit beim Lernen, Beharrlichkeit beim Bloggen und Beharrlichkeit beim Teilen sind die Überzeugungen, an denen Kaka seit seinen Anfängen festgehalten hat. Ich hoffe, dass Kakas Artikel im riesigen Internet Ihnen ein wenig helfen können. Ich bin Kaka, bis zum nächsten Mal.

Das obige ist der detaillierte Inhalt vonThinkPHP-Container-Umkehrung der Kontrolle und Abhängigkeitsinjektion. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn