因为产品需要,接触到软件框架的设计,然后就又碰到IOC容器的概念,查找资料,觉得这个讲的很好很易理解,只可惜是java版本的,不过设计理念是相通的。好了加工下,转载过来给大家分享,共同进步。
IOC(反向控制:Inverse of Control)是Spring.net容器的底层核心功能,AOP功能、声明事务等功能在此基础上也生根开花。但是IOC这个重要的概念却比较晦涩隐讳,拐弯抹角,不容易让人通过字面意思就可以理解,不能不说是一大遗憾。不过IOC确实包括很多内涵,它涉及到代码解耦,设计模式优化等问题的考量。
.net下的IOC容器主要有Castle,ObjectBuilder,StructureMap还有上文提到的Spring.net,它是从JAVA的spring框架中移植转化过来的,说道spring.Net,就顺带说一句Hibernate,大家只知道struts+spring+Hibernate是java企业级开发的经典框架,然而Net现在也有开源的Hibernate了,叫Nhibernate,现在都全了,就差struts了,那么.net对应Java的struts的技术是什么呢?!我认为就是微软的MVC框架,
在.net framwork 3.5的版本里是MVC1,在net4.0现在是MVC2,大家知道java用到的struts其实就是个小的MVC模式的框架,所以我会想到net的MVC可以代替Java的struts框架,这样就出现了NET的企业级应用框架ASP.NetMVC2+Spring.Net+Nhibernate。当然有人会说到微软的EF,这里就不多说了。圆规正传。
看 看《墨攻》理解IOC概念