使用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/

posted @ 2010-09-15 14:37  努力偷懒  阅读(408)  评论(0编辑  收藏  举报