0
我是OOP的新手,我不太瞭解依賴注入。依賴注入和`new` in __construct
假設我有一個抽象類Responder
,並將其擴展爲SuccessResponder
和ErrorResponder
。在我的控制器類中,說UsersController
,我如何訪問這兩個類?
我以前用的new
方式:
public function __construct() {
$this->errorResponder = new ErrorResponder();
$this->successResponder = new SuccessResponder();
}
但之後,我已經經歷了一些截屏(laracast),它看起來像現代的方法是使用依賴注入:
public function __construct(
ErrorResponder $errorResponder,
SuccessResponder $successResponder
) {
$this->errorResponder = $errorResponder;
$this->successResponder = $successResponder;
}
所以我一直在關注這些片刻,直到我使用了Lumen。我開始仔細考慮我編寫的每個代碼。由於在運行時解決了依賴關係,因此在PhpStorm中沒有自動完成功能的確給我帶來了很多麻煩。
爲什麼依賴注入?爲什麼不只是new
? 是否僅有編碼風格?
我已經瀏覽了幾年前關於依賴注入的一些問題,但這些都像辯論主題。
我認爲它在某些情況下必須是有用的,只是我太新而無法遇到這些。那麼需求依賴注入的情況是什麼?任何人都可以給我一些啓發嗎?
更容易測試一個 – nathanmac