理解IOC

理解IOC

概念

IOC(Inversion of Control)控制反转,又称为依赖注入DI Dependence Injection)。

这里的控制反转是指控制权由应用代码转到了外部容器。这样做可以消除应用和服务之间的耦合,将他们之间的依赖通过注入来完成,即实现了依赖注入。

发展

 我们通过编码的演变逐步来看IOC

  假设有这样一个例子:类LogTxt是将日志写入文本文件。类App将使用它将日志写文本文件。

一、直接编码方式

App直接实例化类LogTxt如下:

LogTxt lt=new LogTxt();

Lt.Write();

可是有一天,日志不再记录到文本文件,而是要写入数据库,这样增加了一个新类LogData,将以上代码修改为

LogData ld=new LogData ();

ld.Write();

 如果系统有一百处,那你就需要把它们一个不漏的找出来。麻烦而且容易出错。于是开始使用工厂模式,来解决这个问题。

二、采用工厂模式

   对日志记录设计一个接口,让LogTxtLogData类实现这个接口,然后通过一个类工厂来取得实例。

这样将new提到了工厂中,你只需要修改工厂就可以改变记录的方式,但是这样还是要修改或者增加代码,于是IOC出现了。

三、采用IOC方式

      如果将new的过程通过配置文件完成,那样就不需要修改代码,只需要修改配置文件即可。

   我们可以通过反射来实现new的过程,那样只需要在配置文件中配置要实例化的类名称就可以了。

实现

  IOC通过建立一个容器,通过这个容器来实例化类,并装配它们。容器取的了整个系统的控制权。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值