依賴倒置(DIP):DIP是一種設計思想,在傳統的軟體設計中,上層程式碼依賴下層,當下層程式碼改變的時候,上層程式碼也要改變,程式碼不易維護,而DIP設計思想要求定義定義上層接口,下層實現這個接口,從而降低耦合度。
控制反轉(IOC):IOC是DIP的具體思路,將上層所依賴的下層交由第三方實作。也就是說,是在A類中主動去獲所需的外部資源C,這種情況稱為正向的。那什麼是反向呢?就是A類別不再主去取得C,而是被動等待,等待IoC/DI的容器取得一個C的實例,然後反向的注入到A類別中。
依賴注入(DI):DI是IOC的設計模式,將類別以來依賴另一個類別的實例化移到類別的外部實作。
依賴注入是實作:
1.定義介面或抽象類別(這是發郵件範例)
interface Mail{ public function send(); }
2.不同類型的發送實作該介面
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>
以上是什麼是依賴注入?的詳細內容。更多資訊請關注PHP中文網其他相關文章!