• 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.NETIoC框架就会帮我们在该对象被实例后调用配置好的初始化方法。
      2.销毁行为
      继承System.IDisposable接口或者在object节点配置destroy-method属性,Spring.NET会帮我们在容器被销毁时调用它。

      实现代码:

    Person
          <!--生命周期接口-->
          
    <object id="person" type="SpringNetProcessor.Person, SpringNetProcessor" 
                  init-method
    ="Init" destroy-method="Destroy" />

      二、抽象对象定义和子对象定义

      对象定义可能会包含大量的信息,比如与容器相关的信息(即初始化方法、静态工厂方法名等)、构造器参数和属性值等。子对象定义是指从一个父对象定义中继承了配置数据的对象定义。子对象定义可以根据需要重写或添加某些配置的值。使用父对象和子对象的定义方式可能会节省大量的键入工作。实际上这是设计模式中模板模式的一种形式。个人认为可以解决“子类”与“父类”之间的耦合。
      在object节点中设置parent属性来指明是继承关系,而并非正真意义的继承。

      实现代码:

    Code
        public abstract class Parent
        
    {
            
    public string Name getset; }
        }


        
    public class Child
        
    {
            
    public string Name getset; }
        }

      我们可以看出Child类并没有继承Parent类。

      输出效果:

      参考Spring.NET中文手册

      代码下载

      返回目录

  • 相关阅读:
    ansible笔记(三)--模块讲解
    Linux 后台执行top 出错“TERM environment variable not set” “top: failed tty get”
    信息熵与TF-IDF 学习笔记
    大数运算 文献收藏
    树状数组 Binary Indexed Tree 学习笔记
    Linux Apache 安装(无外网)
    大数定律与中心极限定理
    Python 如何同时遍历两个文件
    监督学习模型分类 生成模型vs判别模型 概率模型vs非概率模型 参数模型vs非参数模型
    unittest生成测试报告
  • 原文地址:https://www.cnblogs.com/GoodHelper/p/SpringNet_Life.html
Copyright © 2020-2023  润新知