Spring.NET通過(guò)幾個(gè)專門的接口來(lái)控制容器中對(duì)象的行為。說(shuō)到對(duì)象的行為無(wú)非就要提到對(duì)象的生命周期控制。類似在WinForm開(kāi)發(fā),F(xiàn)orm生命周期中,Load方法為Form的載入方法和Dispose方法為Form的銷毀方法。Spring.NET都能完美的實(shí)現(xiàn)這些需求?! ?
一、生命周期接口 在使用Spring.NET框架的時(shí)候通常遇到怎樣初始化和銷毀非托管資源(如數(shù)據(jù)庫(kù)連接)的麻煩,下面的解決方案可能對(duì)您有所幫助。 1.初始化行為 繼承Spring.Objects.Factory.IInitializingObject接口或者配置object節(jié)點(diǎn)的init-method屬性,Spring.NET的IoC框架就會(huì)幫我們?cè)谠搶?duì)象被實(shí)例后調(diào)用配置好的初始化方法。 2.銷毀行為 繼承System.IDisposable接口或者在object節(jié)點(diǎn)配置destroy-method屬性,Spring.NET會(huì)幫我們?cè)谌萜鞅讳N毀時(shí)調(diào)用它。 實(shí)現(xiàn)代碼: Person
二、抽象對(duì)象定義和子對(duì)象定義 對(duì)象定義可能會(huì)包含大量的信息,比如與容器相關(guān)的信息(即初始化方法、靜態(tài)工廠方法名等)、構(gòu)造器參數(shù)和屬性值等。子對(duì)象定義是指從一個(gè)父對(duì)象定義中繼承了配置數(shù)據(jù)的對(duì)象定義。子對(duì)象定義可以根據(jù)需要重寫(xiě)或添加某些配置的值。使用父對(duì)象和子對(duì)象的定義方式可能會(huì)節(jié)省大量的鍵入工作。實(shí)際上這是設(shè)計(jì)模式中模板模式的一種形式。個(gè)人認(rèn)為可以解決“子類”與“父類”之間的耦合。 在object節(jié)點(diǎn)中設(shè)置parent屬性來(lái)指明是繼承關(guān)系,而并非正真意義的繼承。 實(shí)現(xiàn)代碼:
我們可以看出Child類并沒(méi)有繼承Parent類。 輸出效果: |
|
來(lái)自: javenpop > 《spring.net》