依賴注入學習筆記(二)深入淺出依賴注入

2022-02-17 01:04:47 字數 1495 閱讀 8291

1、什麼是「元件」和「服務」

所謂的「依賴」就是指在實現某個功能模組時需要使用另外乙個(或多個)「元件」或「服務」,那麼這個所需的「元件」或「服務」將被稱為「依賴」。

「元件」:它是可能被作者無法控制的其它應用使用,但使用者不能對其原始碼進行修改的乙個功能模組。

「服務」指:使用者以同步(或非同步)請求遠端介面來遠端使用的乙個功能介面。

「元件」和「服務」的 共同之處:就是它們都將被其他應用程式或功能模組使用。

它們的不同之處在於:

2、什麼是控制反轉和依賴注入?

控制反轉定義:

「控制反轉」提供了將「外掛程式」組合進模組的能力。 在實現「控制反轉」過程中我們「反轉」了哪方面的「控制」呢?其實這裡的「反轉」的意義就是 如何去定位「外掛程式」的具體實現。

採用「控制反轉」模式時,我們通過乙個組裝模組,將「外掛程式」的具體實現「注入」到模組中就可以了。

個人理解:

這有點像實現類的多型,元件的多型麼?

依賴注入的目標:

「依賴注入」就是為了完成這樣的 目標:將 依賴元件 的配置和使用分離開,以降低使用者與依賴之間的耦合度。

依賴注入的定義:應用程式對需要使用的依賴「外掛程式」在編譯(編碼)階段僅依賴於介面的定義,到執行階段由乙個獨立的組裝模組(容器)完成對實現類的例項化工作,

並將其「注射」到應用程式中稱之為「依賴注入」。

個人理解:

這感覺是面向介面開發???定義好介面,只要注入的依賴元件依賴該介面便可以實現注入。

3、什麼是依賴注入容器

上面實現依賴注入的過程僅僅可以當做乙個演示,真實的專案中肯定沒有這樣使用的。那麼我們在專案中該如何去實現依賴注入呢?

看到上面這句話。老子信了你的邪。我好像就是這樣做的。

定義:

由乙個獨立的組裝模組(容器)完成對實現類的例項化工作,那麼這個組裝模組就是「依賴注入容器」。

<?php

class

container

public

function

getuser()

}//呼叫$container = new

container();

$user = $container->getuser();

個人理解:可以利用框架的伺服器容器,使用自己建立的元件,這時候就要去看框架的伺服器容器的使用,和建立元件規則了。學習學習。

4、依賴注入的優缺點

選擇通過建構函式注入:

選擇通過 setter 設值方法注入:

個人理解:

很高大上,只求會使用,想要設計可能要有成熟的框架思想。

依賴注入學習筆記(一)認識依賴注入

1 什麼是依賴注入 筆記摘要 所謂的 依賴 就是指在實現某個功能模組時需要使用另外乙個 或多個 元件 或 服務 那麼這個所需的 元件 或 服務 將被稱為 依賴 依賴注入 通過以構造函式引數,設值方法或屬性欄位等方式將具體元件傳遞給依賴方。以建構函式的方式注入 class user storage n...

依賴注入學習總結

依賴注入 dependency injection 是這樣乙個過程 由於某客戶類只依賴於服務類的乙個介面,而不依賴於具體服務類,所以客戶類只定義乙個注入點。在程式執行過程中,客戶類不直接例項化具體服務類例項,而是客戶類的執行上下文環境或專門元件負責例項化服務類,然後將其注入到客戶類中,保證客戶類的正...

VC深入淺出學習筆記(二)

孫鑫vc 第四課,先介紹了一下mfc的訊息處理機制,之後主要實現了一些繪圖的方法。一 訊息處理對映 mfc維護了乙個視窗控制代碼和類物件指標的表,每當收到乙個訊息,該訊息與乙個視窗相關,那麼通過視窗控制代碼找到類物件指標,並把指標傳給基類,基類就呼叫cwnd windowproc 虛函式 每個子類都...