Heim > Artikel > Backend-Entwicklung > 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!