Abhängigkeitsinversion (DIP): DIP ist eine Designidee, bei der der Code der oberen Ebene von der unteren Ebene abhängt Die Idee des DIP-Designs erfordert die Definition der Schnittstelle der oberen Schicht und die Implementierung dieser Schnittstelle in der unteren Schicht, wodurch der Kopplungsgrad verringert wird.
Inversion of Control (IOC): IOC ist eine spezifische Idee von DIP, bei der die untere Schicht, von der die obere Schicht abhängt, von einem Dritten implementiert wird. Mit anderen Worten handelt es sich um die Initiative, die erforderliche externe Ressource C in Kategorie A zu erhalten. Diese Situation wird als vorwärts bezeichnet. Was ist also umgekehrt? Das heißt, Klasse A erhält C nicht mehr aktiv, sondern wartet passiv darauf, dass der IoC/DI-Container eine Instanz von C erhält, und fügt sie dann umgekehrt in Klasse A ein.
Abhängigkeitsinjektion (DI): DI ist ein Entwurfsmuster von IOC, das die Instanziierung einer Klasse, die von einer anderen Klasse abhängt, in die externe Implementierung der Klasse verschiebt.
Abhängigkeitsinjektion ist implementiert:
1. Definieren Sie eine Schnittstelle oder abstrakte Klasse (dies ist ein Beispiel für das Senden von E-Mails)
interface Mail{ public function send(); }
2. Verschiedene Versandarten implementieren diese Schnittstelle
class Email implements Mail() { public function send() { //发送Email } }
class SmsMail implements Mail() { public function send() { //发送短信 } }
3.
__construct( ->_mailObj = ->_mailObj->send();
<span style="color: #008000"><br/>$reg = new Register();<br/>$emailObj = new Email();<br/>$smsObj = new SmsMail();<br/><br/>$reg->doRegister($emailObj);//使用email发送<br/>$reg->doRegister($smsObj);//使用短信发送<br/></span>
Das obige ist der detaillierte Inhalt vonWas ist Abhängigkeitsinjektion?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!