RT,如何理解IoC(Inversion of Control)?如果能写个demo解释最好了。
大家讲道理2017-04-10 15:13:10
参考Spring Ioc容器
推荐阅读的文章
Inversion of Control Containers and the Dependency Injection pattern
InversionOfControl
自己动手写一个IoC工具
PHP中文网2017-04-10 15:13:10
ioc 通俗一点的说,你把他想成一个大工厂,你问他要什么object,他就给你什么object,就是这么简单
他就像一个全局变量,在每个object里面的都可以访问到
你问他要什么object,他就给你什么object
天蓬老师2017-04-10 15:13:10
ioc主要作用是用来解析类的实例,为什么要解析?而不是直接获得?因为类有其他类的依赖关系。ioc容器可以把多层级的依赖关系全部解析出来。
如果你看的是Laravel框架,可以看看:Service Container(IOC容器)
怪我咯2017-04-10 15:13:10
依赖注入和控制反转都是为了达到相同的解耦效果,Ioc确实不够开门见山,因此业界称进行了广泛的讨论,最终软件界的泰斗级人物Martin Fowler提出了DI的概念用以替代Ioc,即让调用类对某一接口实现类的依赖关系都第三方(容器或协作类)注入,以移除调用类对某一接口实现类的依赖。
巴扎黑2017-04-10 15:13:10
比如我要去ATM取款,我有一堆银行卡:农行、建行
IOC处理的就是通过ATM的接口(当然也包括系统)去约束卡
比如,卡的大小要求,卡要有磁条,然后得有余额;这些元素都是取款的必备条件。ATM就约束了卡。
IOC的精髓就是:取款操作一致,而卡却不一样。而能使用的卡则依靠中间者(ATM机)去约束