當a類需要依賴於b類,也就是說需要在a類中例項化b類的物件來使用時候,如果b類中的功能發生改變,也會導致a類中使用b類的地方也要跟著修改,導致a類與b類高耦合。這個時候解決方式是,a類應該去依賴b類的介面,把具體的類的例項化交給外部。
<?php
/** * 為了約束我們先定義乙個訊息介面
* inte***ce message
*/inte***ce message
/** * 有乙個傳送郵件的類
* class seedemail
*/class seedemail implements message
}/**
*新增乙個傳送簡訊的類
* class seedsms
*/class seedsms implements message}/*
* 訂單產生的時候 需要傳送訊息
*/class order
public function seed_msg()
}//我們需要傳送郵件的時候
$message = new seedemail();
//將郵件傳送物件作為引數傳遞給order
$order = new order($message);
$order->seed_msg();
//我們需要傳送簡訊的時候
$message = new seedsms();
$order = new order($message);
$order->seed_msg();
PHP如何實現依賴注入
摘要 控制反轉 inversion of control,英文縮寫為ioc 是框架的重要特徵。控制反轉 ioc 是一種思想,依賴注入 di 是實施這種思想的方法。高層模組不應該依賴於底層模組,兩個都應該依賴抽象。抽象不應該依賴於細節,細節應該依賴於抽象。首先,我們來看一段 class a class...
php依賴注入
依然是來自到喜啦的一道面試題,你知道什麼是依賴注入嗎?依賴注入 di 的概念雖然聽起來很深奧,但是如果你用過一些新興的php框架的話,對於di一定不陌生,因為它們多多少少都用到了依賴注入來處理類與類之間的依賴關係。class a 為什麼這種方案不可取呢?因為這樣的話,a與b就耦合在了一起,也就是說a...
PHP利用反射實現依賴注入
本文參考部落格 非常感謝原博主.為了加深理解,做了部分修改,增加了適當注釋.前一篇簡單理解了php依賴注入,在實際開發過程中,我們並不知道依賴的類將來會擴充套件成什麼樣子,因此我們需要在實現依賴注入的時候,通過容器利用php反射類去實現.這裡的容器其實就是乙個能通過反射類實現依賴注入,並且最終返回我...