最近公司计划修改项目架构,由于项目历史悠久,到现在还是用了大量的webform技术,公司的一位同事技术水平较高,因此公司把这个重任交给了这位同事,同事提到了Ioc,由于我以前也没怎么接触到这种技术,索性查了一下资料,看看这个Ioc到底是个什么东西。网上一提到Ioc不免就是依赖倒置,依赖注入,控制反转这些词语,而且都说这个技术多好多好,但是我愣是没看懂这个好是为什么。
经过一番敏思苦想,终于感觉自己找到了一种解释,到底是否正确暂且不说。大家都知道采用Ioc的时候一般都是面向接口编程的,开始的时候我也是一直不理解为什么非要多写个接口出来,现在想来,Ioc应该是为了自动解决接口定义和实现的转换,接口的最大好处就是把功能设计和功能实现进行分离,接口的优点使得在项目中出现大量的针对接口的函数,比如interface void SayHello1() ;interface void SayHello2() ;interface void SayHello3() ;.....等等这些接口,但是系统到最终要运行的时候还是要调用具体实现才能正常工作的,把每个接口和实现代码连结是一件繁琐而重复的工作,不希望每个interface void SayHello1()都要去做整合,心想如果可以直接通过配置去调用实际工作的类,然后再转换成接口那么就问题解决了,因此Ioc就出现了。
说到底,Ioc是为了自动解决接口定义和实现的转换而做的一种功能提取,把类似的功能提取出来这是编程中一种很重要的思想,我认为Ioc是这种思想一种很好的实践产物。当然这些都是我自己的一些胡乱猜想,希望不要误人子弟才好。
原文地址:http://www.cnblogs.com/LoveVirus/p/3958732.html