Spring.NET學習筆記4——對象的創建(基礎篇)

學過了前面的課程,我們來一起學習Spring.NET的IoC容器對象的創建。

  創建對象一般有3種方式:1.構造器創建,2.靜態工廠創建,3.實例工廠創建

  多數情況下,容器會根據對象定義中的type屬性值去直接調用相應類型的某個構造器。另外,容器也可以調用工廠方法來創建對象,這時type屬性的值就應該是包含工廠方法的類型(按:而不是要創建的類型,但通過該對象定義的名稱獲取的則是由工廠方法所創建的對象)。工廠方法的產品對象可以是工廠方法所在的類型,也可以是其它類型(按:很多情況下工廠方法位於單獨的類型中),這無關緊要。(摘自Spring.NET中文手冊)

 

  一、通過構造器創建對象

通過構造器創建對象需要滿足這幾個條件:1.指明對象類型type="類全名,程序集名"(<object id="personDao" type="CreateObjects.PersonDao, CreateObjects" />),也可以使用強命名type="System.Windows.Forms.Form, System.Windows.Forms, Version=2.0.0.0, Culture=neutral,PublicKeyToken=b77a5c561934e089"。2.有一個無參的構造函數或者默認構造函數(依賴注入的時候需要外部可以調用的構造函數,如pubilc修飾的,構造函數可以帶參數)。

 

 

嵌套類型對象的創建需要用“+”號來連接被嵌套的類型。如果在PersonDao中嵌套了類型Person

 

 

 

   二、靜態工廠創建

使用靜態工廠創建對象需要配置factory-method屬性

 

 

 

  三、使用實例工廠創建對象

使用實例工廠創建對象需要先定義一個工廠,然後設置factory-object和factory-method屬性,且滿足 實例工廠方法所在的對象必須也要配置在同一容器(或父容器)中 和 對象定義就不能包含type屬性

 

 

 

 

  四、泛型類型的創建

泛型類型的創建比較類型於以上幾種創建方式,可以有通過構造器創建,還可以通過靜態或者實例工廠創建。但是設置type屬性的時候要注意:左尖括號<要替換成字符串“&lt;”,因爲在XML中左尖括號會被認爲是小於號。

 

 

 

以上就是對象創建的幾種方式。

 代碼下載

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章