前言
自從幾年前拋棄wcf,使用web api 來做服務(wù)器端開發(fā)之后,就不再迷惑了。但是因為本來從事傳統(tǒng)行業(yè)管理軟件開發(fā),一般都以分布式應(yīng)用開發(fā)為主。純BS還是比較少,于是比較喜歡用windows service來宿主web api。發(fā)現(xiàn)這種場景網(wǎng)上文章還是比較少。這次就結(jié)合最近的技術(shù)嘗試(DI、IOC),整體介紹一下這方面的實踐。
名詞解釋
依賴注入:
依賴倒置原則 A.高層次的模塊不應(yīng)該依賴于低層次的模塊,他們都應(yīng)該依賴于抽象。B.抽象不應(yīng)該依賴于具體實現(xiàn),具體實現(xiàn)應(yīng)該依賴于抽象。 DI—Dependency Injection,即“依賴注入”:組件之間依賴關(guān)系由容器在運行期決定,形象的說,即由容器動態(tài)的將某個依賴關(guān)系注入到組件之中。依賴注入的目的并非為軟件系統(tǒng)帶來更多功能,而是為了提升組件重用的頻率,并為系統(tǒng)搭建一個靈活、可擴展的平臺。通過依賴注入機制,我們只需要通過簡單的配置,而無需任何代碼就可指定目標需要的資源,完成自身的業(yè)務(wù)邏輯,而不需要關(guān)心具體的資源來自何處,由誰實現(xiàn)。
理解DI的關(guān)鍵是:“誰依賴誰,為什么需要依賴,誰注入誰,注入了什么”,那我們來深入分析一下:
●誰依賴于誰:當然是應(yīng)用程序依賴于IoC容器;
●為什么需要依賴:應(yīng)用程序需要IoC容器來提供對象需要的外部資源;
●誰注入誰:很明顯是IoC容器注入應(yīng)用程序某個對象,應(yīng)用程序依賴的對象;
●注入了什么:就是注入某個對象所需要的外部資源(包括對象、資源、常量數(shù)據(jù))。
控制反轉(zhuǎn):控制反轉(zhuǎn)即IoC (Inversion of Control),它把傳統(tǒng)上由程序代碼直接操控的對象的調(diào)用權(quán)交給容器,通過容器來實現(xiàn)對象組件的裝配和管理。所謂的“控制反轉(zhuǎn)”概念就是對組件對象控制權(quán)的轉(zhuǎn)移,從程序代碼本身轉(zhuǎn)移到了外部容器。 我綁架了一個人質(zhì),對圍觀的警察說:我要一輛紅色法拉利,才能釋放人質(zhì)。但其實我只是希望要一輛車而已。要法拉利很容易被拒絕,還可能引起很嚴重的后果。如果我說要一輛車,那么警察估計更容易給我一輛普通車... 在軟件開發(fā)里面的就是盡量使用接口對象,而不使用具體明確的對象(依賴外部注入的接口對象),以此達到解除耦合的目的。哎我自己也理解得不深刻,其實我要說的是:owin+web api+autofac.上面的解釋是我抄的,理解不了就算了吧。后面這些總該知道什么東西吧。