IoC这个名字其实不够合理

IoC,即Inversion of Control,中文也叫控制反转,最常见于Spring中,但其实这个名字并不够合理,控制转移才是一个贴切的名字。

首先看看什么叫反转,不论是英文的Inversion还是中文的”反转“,意思都差不多:反转,指转向相反的方向。基本上应该属于以下情况:以前向左现在向右;以前前进,现在后退;以前是牛市,现在是熊市;以前是被地主压迫的农民工人,现在打倒地主资本家翻身做主人。

那么我们再来看看控制反转,指的是“以前是应用程序控制资源(对象、配置文件),现在是框架/IoC容器控制资源(对象、配置文件)“。仔细看看,应用程序和IoC容器其实没有半毛钱的关系,所以他俩不存在”反转“的可能性。事实上,二者之间的关系更像合作。可以看下面的比喻:

对象、配置文件相当于程序员,应用程序相当于软件公司,IoC框架相当于外包公司。以前软件公司自己招程序员,如果开发语言发生变化,不能随意辞退重新招,这样不够灵活(相当于代码写死);而使用IoC框架以后,程序员全部成了外包人员,软件公司要什么,外包公司就给提供一个相应的程序员,如果开发语言发生变化,那么软件公司不需要开除员工重新招,找外包公司换一个即可(即使用配置文件,如果实现类变化,不需要修改代码,只需修改配置文件为新实现类即可)。程序员的社保等(被控制权)从软件公司转移到了外包公司。但不论什么时候,真正干活、创造价值的其实还是程序员。

综上,控制(Control)从来没有被反转(Inversion),仅仅只是转移(transition)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值