程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> 關於.NET >> Unity(七):使用場景Ⅲ:用於依賴注入(下)

Unity(七):使用場景Ⅲ:用於依賴注入(下)

編輯:關於.NET

Fluent interface

上一篇文章我使用到了Fluent interface這個特性,但是這一點忘了交代了,不好意思...補上!

先來看段代碼:

咋看上去,可能會有些不習慣,但是再仔細看,又會覺得表意很清楚,能夠很順暢的把這段代碼閱讀下來。這個特性叫做Fluent interface(我還不清楚中文統一的翻譯是什麼),具體可以參見Martin Fowler的http://martinfowler.com/bliki/FluentInterface.html一文,這個概念也是Martin Fowler最先提出來的。

下面繼續講述Unity支持的依賴注入的另外兩種用法。

設值注入

下面是我們的目標類PropertyInjection。可以看到,在PropertyInjection類中的兩個屬性MyOrder和MyLogger都打上了Dependency的標簽。Unity容器會根據這些屬性上的標簽為目標類注入所需的對象。

下面是我們的測試代碼。首先,我們建立容器,然後在容器中注冊了IOrder和ILogger的具體類,同時將PropertyInjection注冊為IOrderWithLogging的具體類。

同樣,在這裡,我們將CommonOrder注冊為單例,並為它的單實例的Discount賦值為0.95,這樣做的目的是為了檢驗取出的IOrder的具體類為我們先前的注入到容器的CommonOrder類。

下面是輸出結果。

方法調用注入

下面是我們的目標類MethodCallInjection。這次我們是在方法Inject上打了InjectMethod標簽,Unity容器會根據這些方法上的標簽為目標類注入所需的對象。

下面是我們的測試代碼。與前面的類似,不再重復了。

下面是輸出結果。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved