Heim  >  Artikel  >  Backend-Entwicklung  >  Drei Möglichkeiten der Abhängigkeitsinjektion in PHP

Drei Möglichkeiten der Abhängigkeitsinjektion in PHP

angryTom
angryTomOriginal
2019-08-22 13:53:297979Durchsuche

Drei Möglichkeiten der Abhängigkeitsinjektion in PHP

Inversion of Control (IoC) ist ein Designprinzip in der objektorientierten Programmierung, das verwendet werden kann, um die Kopplung zwischen Computercodes zu reduzieren. Die gebräuchlichste Methode heißt Dependency Injection (DI). Im Folgenden stellen wir Ihnen die drei Methoden der Abhängigkeitsinjektion in PHP vor.

Empfohlene Tutorials: PHP-Video-Tutorial

1. Konstruktor-Injektion

Injizieren Sie das abhängige Objekt über die Parameter des Konstruktors in das abhängige Objekt und injizieren Sie es beim Initialisieren des Objekts.

Vorteile:

Nach Abschluss der Objektinitialisierung kann das verwendbare Objekt abgerufen werden.

Nachteile:

●Wenn viele Objekte eingefügt werden müssen, ist die Konstruktorparameterliste sehr lang

●Nicht flexibel genug. Wenn es mehrere Injektionsmethoden gibt und jede Methode nur einige bestimmte Abhängigkeiten injizieren muss, müssen mehrere überladene Konstruktoren bereitgestellt werden, was problematisch ist

2. Setter-Methodeninjektion

Der IoC-Dienstanbieter fügt das abhängige Objekt in die abhängige Klasse ein, indem er die von der Mitgliedsvariablen bereitgestellte Setter-Funktion aufruft.

Vorteile:

Flexibel. Erforderliche Objekte können selektiv injiziert werden.

Nachteile:

Nachdem das abhängige Objekt initialisiert wurde, kann es nicht verwendet werden, da das abhängige Objekt noch nicht injiziert wurde.

3. Schnittstelleninjektion

Die abhängige Klasse muss die angegebene Schnittstelle implementieren und dann eine Funktion in der Schnittstelle implementieren, für die sie verwendet wird Abhängigkeitsinjektion. Der Parameter dieser Funktion ist das zu injizierende Objekt.

Vorteile

Bei der Schnittstelleninjektion sind der Name der Schnittstelle und der Name der Funktion nicht wichtig, solange die Parameter der Funktion vom Typ sind des zu injizierenden Objekts.

Nachteile

Das Eindringen ist zu stark und wird nicht empfohlen.

PS: Was ist ein Einbruch?

Wenn Klasse A eine von anderen bereitgestellte Funktion verwenden möchte und zur Verwendung dieser Funktion ihrer eigenen Klasse zusätzlichen Code hinzufügen muss, ist dies aufdringlich.

Das obige ist der detaillierte Inhalt vonDrei Möglichkeiten der Abhängigkeitsinjektion in PHP. 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