Autofac一款I(lǐng)OC容器,據(jù)說比Spring.Net、Unity、Castle性能高,且比較輕量級(jí),也有人做過測試,自己可以找找,看看比拼的結(jié)果是怎樣的,在使用Autofac之前我們先來了解幾個(gè)概念;在我看來依賴倒置(DIP)、控制反轉(zhuǎn)(IOC)、 依賴注入(DI),都源于一個(gè)思想,一項(xiàng)技術(shù),思想就是面向接口編程,技術(shù)就是反射。

通常我們在編程的時(shí)候呢,類與類之間都有著這樣那樣的關(guān)系,沒有關(guān)系的類,也就說明它沒有存在的必要了;那么對于復(fù)雜的系統(tǒng)來講,類之間的關(guān)系也會(huì)變的更復(fù)雜,如果需求發(fā)生變化,那將是改死人的節(jié)奏,那么如何降低依賴關(guān)系,提高系統(tǒng)的擴(kuò)展性,就非常重要了,也就是我們經(jīng)常說的解耦。

依賴倒置

依賴倒置原則:

  1. 上層模塊不應(yīng)該依賴下層模塊,它們共同依賴于抽象
  2. 抽象不依賴于具象,具象依賴抽象

上層是使用者,下層是被使用者,如果下層發(fā)生變化那么上層也要進(jìn)行修改,那么該怎么辦呢,就是上層和下層共同依賴于一個(gè)抽象,那么抽象是穩(wěn)定的,上層也就不需要修改了。

控制反轉(zhuǎn)

通常我們在編程的時(shí)候,都是使用者需要什么對象就實(shí)例化一個(gè)對象,現(xiàn)在有這么一個(gè)場景,比如我們的系統(tǒng)之前用的是SqlServer,現(xiàn)在需要也支持MySql,那么業(yè)務(wù)邏輯層也需要改動(dòng)很多。

現(xiàn)在利用控制反轉(zhuǎn)我們可以將實(shí)例化對象交給IOC容器來實(shí)現(xiàn),這樣使用者就不需要改動(dòng)了,用一句話來總結(jié)就是:

使用者不再實(shí)例化被使用者對象,而交給IOC容器來實(shí)現(xiàn)

依賴注入

 就是由IoC容器在運(yùn)行期間,動(dòng)態(tài)地將某種依賴關(guān)系注入到對象之中。

這些概念已經(jīng)有很多文章了,不了解的童鞋可以移步這里http://www.cnblogs.com/qqlin/archive/2012/10/09/2707075.html

Autofac(IOC容器)

延伸閱讀

學(xué)習(xí)是年輕人改變自己的最好方式-Java培訓(xùn),做最負(fù)責(zé)任的教育,學(xué)習(xí)改變命運(yùn),軟件學(xué)習(xí),再就業(yè),大學(xué)生如何就業(yè),幫大學(xué)生找到好工作,lphotoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動(dòng)軟件開發(fā)培訓(xùn),網(wǎng)站設(shè)計(jì)培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)學(xué)習(xí)是年輕人改變自己的最好方式