從今天開始,我將和大家一起來學習這個控制反轉(Inversion of Control, IoC) 和依賴注入(Dependency Injection, DI) 容器的使用。關於 IoC 和 DI,大家可以參考 Martin Fowler 著的《IoC 容器和 Dependency Injection 模式》。
描述
Unity 應用程序塊(Unity)是一個輕量級、可擴展的依賴注入容器,支持構造函數、屬性和方法調用注入。它為開發人員提供了如下好處:
常見場景
除了單獨解決橫切關注點如日志、認證、授權、緩存和異常處理的組件以外,現代業務系統通常由定制的業務對象和在應用程序中完成特殊的或者一般的任務的組件組成。
成功構建這樣的應用程序的關鍵是獲得解耦的或者極度松耦合的設計。松耦合的應用程序更加靈活、更加易於維護。同時在開發期間進行測試,可以模擬對象的樁(輕量級模擬的實現),這增強了實質的依賴。例如,數據庫連接、網絡連接、ERP 連接和富用戶接口組件。
依賴注入是一種用於構建松耦合應用程序的主要技術。它提供了處理對象間依賴的方法。例如,一個處理用戶信息的對象可能依賴於訪問數據存儲、驗證信息和檢查 用戶是否被授權執行更新的其他對象。依賴注入技術可以確保用戶類正確的初始化及組裝所有這些對象,特別是依賴是抽象的地方。
使用容器可以有很多好處,但它會改變應用程序的設計方式,尤其適合於基於組件的開發,朋友們可以有選擇的使用它。
最基本的代碼
下面的代碼展示了 Unity 容器的最基本的使用方法。
在上面的代碼中,