深入理解Dip Ioc Di以及Ioc容器

2022-02-13 12:52:46 字數 1632 閱讀 7897

學習   

dip 依賴倒置:  一種軟體架構設計的原則(抽象概念)。

ioc控制反**一種反轉流、依賴和介面的方式(dip的具體實現方式)。

di依賴注入:ioc的一種實現方式,用來反轉依賴(ioc的具體實現方式)。

ioc容器:依賴注入的框架,用來對映依賴,管理物件建立和生存週期(di框架)。

dip   一種軟體架構設計原則

依賴倒置原則:   底層模組依賴高層模組定義的介面      高層模組不受底層模組影響。  高層模組定義介面  底層模組負責實現高層模組定義的介面 。

高層模組不應依賴於低層模組,兩者應該依賴於抽象。

抽象不不應該依賴於實現,實現應該依賴於抽象。

ioc 控制反轉 軟體設計模式

控制反轉

高層將依賴的底層物件的獲得交給第三方來控制,即依賴物件不在被依賴物件內通過new方式獲取。

軟體設計原則:原則 提供指南,告訴我們對,錯。它僅給準則,以便我們可以設計好的軟體,避免不良的設計。一些常見的原則,比如dry、ocp、dip等。

軟體設計模式:模式是在軟體開發過程中總結得出的一些可重用的解決方案,它能解決一些實際的問題。一些常見的模式,比如工廠模式、單例模式等等。

依賴注入 有兩種常用方式    依賴注入和服務定位。其中,依賴注入使用最為廣泛

di依賴注入   是一種機制 將需要依賴(底層模組)物件的引用傳遞給被依賴(高層模組)物件。

建構函式注入法:通過建構函式傳遞依賴。建構函式的引數必須有乙個用來接收乙個依賴物件,那麼引數型別是? 高層模組不應該依賴底層模組,那就應該是乙個抽象類。 所以建構函式應該有乙個抽象引數來接收依賴。

屬性注入:通過屬性傳遞依賴

介面注入:高層次依賴模組  提供介面來完成  底層模組的注入。

前面幾種方式,我們都是通過手動的方式來建立依賴物件,並將引用傳遞給被依賴模組。比如:

對於大型專案來說,相互依賴的元件比較多。如果還用手動的方式,自己來建立和注入依賴的話,顯然效率很低,而且往往還會出現不可控的場面。正因如此,ioc容器誕生了。ioc容器實際上是乙個di框架,它能簡化我們的工作量。它包含以下幾個功能:

1.ninject

2.castle windsor:  

3.autofac

4.structuremap

5.unity: 

6.mef

7.spring.net

8.lightinject

深入理解Box Shadow以及運用

box shadow 盒子陰影 可設定的屬性一共有六個,分別是x軸 y軸 blur spread 模糊擴散範圍 color insert 內陰影 其中經常用到就是設定x y軸 blur 模糊度 以及color 顏色 這四個值。準備工作 建立好之後給這個盒子新增一些樣式,如下 前兩個步驟結合效果如下 ...

深入理解C語言 深入理解指標

關於指標,其是c語言的重點,c語言學的好壞,其實就是指標學的好壞。其實指標並不複雜,學習指標,要正確的理解指標。指標也是一種變數,占有記憶體空間,用來儲存記憶體位址 指標就是告訴編譯器,開闢4個位元組的儲存空間 32位系統 無論是幾級指標都是一樣的 p操作記憶體 在指標宣告時,號表示所宣告的變數為指...

mysql 索引深入理解 深入理解MySql的索引

為什麼索引能提高查詢速度 先從 mysql的基本儲存結構說起 mysql的基本儲存結構是頁 記錄都存在頁裡邊 各個資料頁可以組成乙個雙向鍊錶每個資料頁中的記錄又可以組成乙個單向鍊錶 每個資料頁都會為儲存在它裡邊兒的記錄生成乙個頁目錄,在通過主鍵查詢某條記錄的時候可以在頁目錄中使用二分法快速定位到對應...