1.做测试更省力了
2.比如Ninject,实现无视初始化先后顺序,无视模块初始化中互相调用造成的死循环。
那么如果不用IOC,原始的形式要么从工厂创建,要么用单例。
是不是IOC还有更多的好处我没发现?
个人理解,IOC主要就是为了Bigger than bigger。实际上我也暂时没有特别明确遇到这样需求,不过这样说显得程序员很LOW,所以大家都不说。
你可以想象一下GOOGLE的自组装手机项目吧,IOC基本也是奔那个去的,不过理解要照进现实,还需要适合的环境。
IOC主要的好处就是他的名字:Inversion of Control, 是面向对象编程中的一种设计原则,可以用来减低计算机代码之间的耦合度, 其中最常见的方式叫做依赖注入(Dependency Injection,简称DI),还有一种方式叫“依赖查找”(Dependency Lookup)。通过控制反转,对象在被创建的时候,由一个调控系统内所有对象的外界实体,将其所依赖的对象的引用传递给它。也可以说,依赖被注入到对象中。
"不过这样说显得程序员很LOW,所以大家都不说。"
一语道出真言啊。。。
个人理解:主要是切换业务方便(实际上我还基本没遇到这样的需求)。通过配置文件变化,就能切换一层,工厂的话一般需要改代码。
说白了就是为了提高门坎,提高自己的薪水.实际上的需求我也没遇到过,哈哈.不过倒是一直在用