spring-core-2-13 | IoC发展简介:你可能对IoC有些误会?

IoC 发展简介

什么是IoC ?

维基百科的解释是这样的, 另外注意英文版和中文版是有区别的, 中文版相对局限, 而英文版又宽泛的感觉没讲啥.

In software engineering, inversion of control (IoC) is a programming principle.
IoC inverts the flow of control as compared to traditional control flow.
In IoC, custom-written portions of a computer program receive the flow of control from a generic framework.
A software architecture with this design inverts control as compared to traditional procedural programming: in traditional programming, the custom code that expresses the purpose of the program calls into reusable libraries to take care of generic tasks, but with inversion of control, it is the framework that calls into the custom, or task-specific, code.

来源:https://en.wikipedia.org/wiki/Inversion_of_control

在软件工程中, 反转控制(IoC)是一种编程风格或者原则.
IoC是相对于传统的控制流即输入输出这种有顺序的串行流相比较而言的. IoC是典型的反转控制.
IoC通常来说在软件架构上要比传统架构复杂, 不是那么直接, 比如依赖的来源就不一定那么明确. 关于其具体实现通常也不需要太关心, 这样就可以解耦掉一部分设置.

IoC 发展简介

IoC 的简史

• 1983年,Richard E. Sweet 在《The Mesa Programming Environment》中提出“Hollywood Principle”(好莱坞原则)
不是演员去找导演, 而是导演主动找演员.

• 1988年,Ralph E. Johnson & Brian Foote 在《Designing Reusable
Classes》中提出“Inversion of control”(控制反转)
程序中的依赖或者数据由其他方提供, 而非你自己(程序员)去找

• 1996年,Michael Mattsson 在《Object-Oriented Frameworks, A survey of
methodological issues》中将“Inversion of control”命名为“Hollywood principle”

2004年,Martin Fowler 在《Inversion of Control Containers and the
Dependency Injection pattern》中提出了自己对IoC 以及DI 的理解

这可能是大家对IoC和DI最广泛了解的节点. 其实这里作者只是总结了前人经验, 没有提出新的理论.
IoC的容器其实早在此之前就已经实现并提出了, Martin Fowler其实并没有更多的建树, 因此这里的这篇文章建议只供参考, 因为其仍有很多局限.

• 2005年,Martin Fowler 在《InversionOfControl》对IoC 做出进一步的说明

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值