依賴注入筆記

2021-10-01 05:43:25 字數 2378 閱讀 3758

依賴注入

假設當前有乙個使用者名叫bowman,bowman每天做三件事,看書,玩遊戲,抓寵物。

bowman需要使用乙個手機才能做這些事情,在不使用依賴注入的情況下,**是這樣的:

namespace dependency

}

namespace dependency

iphone6 iphone6 =

newiphone6()

;//直接在bowman的類當中例項化

public

void read (

)public

void

play()

public

void

grab()

}}

namespace dependency

}

namespace dependency

public

void

play

(string user,

int age)

public

void

grab

(string user,

int age)

}}

namespace dependency

}}

首先有乙個iphone6的類繼承了iphone類,iphone類當中沒有任何具體實現,但是iphone6類當中實現了看書,玩遊戲和抓寵物這三個功能。bowman類當中也沒有去做這三個功能的具體實現。此時,我們選擇的是在bowman類當中例項化iphone6類,然後在相應的方法當中呼叫iphone6類的方法。

程式執行的時候例項化bowman類,並呼叫bowman類相應的方法。

上面那種實現的方法有一種弊端,就是bowman和iphone6的耦合度過高,在那個程式當中,bowman如果失去iphone6就不能實現任何功能。因此我們需要依賴注入,依賴注入就是bowman不再一定要iphone6才能實現功能了,開發者設計了手機的功能之後直接把手機塞到bowman的手裡,以此來避免bowman和手機耦合度過高的問題

以下是使用依賴注入的情況:

namespace dependencyinjection

}

namespace dependencyinjection

public

void

read()

public

void

play()

public

void

grab()

}}

namespace dependencyinjection

public

virtual

void

play

(string user,

int age)

public

virtual

void

grab

(string user,

int age)

}}

namespace dependencyinjection

public

override

void

play

(string user,

int age)

public

override

void

grab

(string user,

int age)

}}

namespace dependencyinjection

public

override

void

play

(string user,

int age)

public

override

void

grab

(string user,

int age)

}}

namespace dependencyinjection

}}

在這裡,iphone,iphone6當中都有具體實現,並且新建了乙個iphone7的類(也有具體實現)。在使用依賴注入的時候,開發者直接給bowman乙個iphone(手機),bowman不需要去管是什麼手機,總之拿來就能用。主函式當中做的事情就是例項化bowman和iphone6以及iphone7,然後隨便塞一種iphone到bowman手裡,讓bowman執行三種功能。這就是依賴注入。

以上使用c#編寫

筆記 依賴注入

把有依賴關係的類放到容器中,解析出這些類的例項,就是依賴注入。目的是實現類的解耦 例 class a中用到了class b的物件b,一般情況下,需要在a的 中顯式的new乙個b的物件。採用依賴注入技術之後,a的 只需要定義乙個私有的b物件,不需要直接new來獲得這個物件,而是通過相關的容器控制程式來...

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

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

Spring依賴注入相關筆記

1.概述 從spring2.5開始就可以使用註解來配置依賴注入。而不是採用xml來描述乙個bean連線,你可以使用相關類,方法或字段宣告的註解,將bean配置移動到元件類本身。在xml注入之前進行註解注入,因此後者的配置將通過兩種方式的屬性連線別前者重寫。註解連線在預設的情況下在spring容器中打...