• 使用IOC的原因。


          本人使用Spring.NET来实现IOC的功能,之所以使用IOC是因为要用它来管理对象的创建,为何要管理这些对象的创建?我们做项目,在脑海里面必须有一个很清楚的认识,我们必须写出来的代码,尽可能多的在别的地方可以重用,别的地方,很多时候指的是不同的软件项目,因此,我们有一个目标就是要实现松耦合,让不同的模块之间的关联性尽可能地少。除了使用IOC,为了达到这个目标,我们也需要使用接口来配合使用。

          我们来举一个我们做程序所熟悉的例子吧。就拿数据访问层为例,我们架设我们已经建立了一个软件项目的框架,我们的框架分为业务逻辑层(BLL),数据库访问层(DAO),数据库(DB)。我们数据库访问层有开源项目iBatis.NET和NHibernate。现在,我们要保存数据,我们定义一个IData接口,这个接口中有一个save(object mObject)方法,因此,我们可以通过IOC来创建IData的接口类对象,我们只需要在配置文件中配置这个对象是用iBatis.NET还是NHibernate,这样,我们在调用的地方只需要引入这个接口就可以了,而不需要引入iBatis.NET或NHibernate,从而降低了我们软件项目中对iBatis.NET或NHibernate的耦合性(降低软件项目对iBatis.NET或NHibernate的依赖,日后或许还有可能用到HQL等其它的DAO数据访问层。)

          其实,除了上面的例子,我们做软件,还有很多时候会遇到,如同一个软件在不同的企业中的应用也是有区别的,每一个单位企业,都有他们各自的特殊性存在,如在某个业务中,在算员工工资的时候,有些公司还有午餐补贴、交通补贴、特殊节日补贴,有些公司就没有,因此,在算工资的时后,我们会为不同的公司建立不同的业务逻辑层类库,这样,我们只需要在IOC中配置适合各自单位的业务逻辑层的DLL,而不需要对整个软件项目进行重新编译。

     原创作品出自努力偷懒,转载请说明文章出处http://www.cnblogs.com/kfarvid/

  • 相关阅读:
    使用Unity5.1进行VR开发的配置(最新的未必是最好的!!!)
    从单幅深度图识别人体姿态
    工作中编写存储过程小记
    【积累】根据CheckBox的不选中 ,用JQuery 清除 RidaoButtonList 的选中项
    【积累】LinqToSql复合查询结果转DataTable数据
    MSSSQL 脚本收藏
    VS2010历史记录清理
    PowerDesigner16工具学习笔记-建立CDM
    Android 安装过程中的问题
    Unity3D集成SVN进行版本控制
  • 原文地址:https://www.cnblogs.com/kfarvid/p/1826998.html
Copyright © 2020-2023  润新知