Spring.NET学习笔记11——自定义对象行为(基础篇) Level 200
Spring.NET通過幾個專門的接口來控制容器中對象的行為。說到對象的行為無非就要提到對象的生命周期控制。類似在WinForm開發,Form生命周期中,Load方法為Form的載入方法和Dispose方法為Form的銷毀方法。Spring.NET都能完美的實現這些需求。
一、生命周期接口
在使用Spring.NET框架的時候通常遇到怎樣初始化和銷毀非托管資源(如數據庫連接)的麻煩,下面的解決方案可能對您有所幫助。
1.初始化行為
繼承Spring.Objects.Factory.IInitializingObject接口或者配置object節點的init-method屬性,Spring.NET的IoC框架就會幫我們在該對象被實例后調用配置好的初始化方法。
2.銷毀行為
繼承System.IDisposable接口或者在object節點配置destroy-method屬性,Spring.NET會幫我們在容器被銷毀時調用它。
實現代碼:
Person????public?class?Person
????{
????????public?void?Init()
????????{
????????????Console.WriteLine("我長大了");
????????}
????????public?void?Destroy()
????????{
????????????Console.WriteLine("我衰老了");
????????}
????}
?
??????<!--生命周期接口-->??????<object?id="person"?type="SpringNetProcessor.Person,?SpringNetProcessor"?
??????????????init-method="Init"?destroy-method="Destroy"?/>
?
二、抽象對象定義和子對象定義
對象定義可能會包含大量的信息,比如與容器相關的信息(即初始化方法、靜態工廠方法名等)、構造器參數和屬性值等。子對象定義是指從一個父對象定義中繼承了配置數據的對象定義。子對象定義可以根據需要重寫或添加某些配置的值。使用父對象和子對象的定義方式可能會節省大量的鍵入工作。實際上這是設計模式中模板模式的一種形式。個人認為可以解決“子類”與“父類”之間的耦合。
在object節點中設置parent屬性來指明是繼承關系,而并非正真意義的繼承。
實現代碼:
Code??????<!--抽象對象定義和子對象定義-->
??????<object?id="parent"?type="SpringNetProcessor.Parent,?SpringNetProcessor"?abstract="true">
????????<property?name="Name"?value="parent"/>
??????</object>
??????<object?id="child"?type="SpringNetProcessor.Child,?SpringNetProcessor"?parent="parent"/>
?
????public?abstract?class?Parent????{
????????public?string?Name?{?get;?set;?}
????}
????public?class?Child
????{
????????public?string?Name?{?get;?set;?}
????}
?
我們可以看出Child類并沒有繼承Parent類。
?
輸出效果:
?
參考Spring.NET中文手冊
?
代碼下載
?
?
返回目錄
轉載于:https://www.cnblogs.com/GoodHelper/archive/2009/11/11/SpringNet_Life.html
總結
以上是生活随笔為你收集整理的Spring.NET学习笔记11——自定义对象行为(基础篇) Level 200的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 大端小端区别、Union和Struct的
- 下一篇: 把光盘转化成镜像文件