第五章 spring源码系列-ioc原理分析

谁践踏了优雅 2022-10-07 13:51 263阅读 0赞

一、什么是IOC和DI

控制反转的英文翻译是 Inversion Of Control,缩写为 IOC。注意IOC是一种思想,并不是spring特有的。那什么是IOC思想呢?

举例说明,比如我们在执行一段代码时,自己去写main方法,自己去创造类,管理代码执行的流程,也就是说所有的流程都由程序员来控制。但当我们有一个框架,框架提供了一个可扩展的代码骨架,用来组装对象、管理整个执行流程。程序员利用框架进行开发的时候,只需要往预留的扩展点上,添加跟自己业务相关的代码,就可以利用框架来驱动整个程序流程的执行。

这里的“控制”指的是对程序执行流程的控制,而“反转”指的是在没有使用框架之前,程序员自己控制整个程序的执行。在使用框架之后,整个程序的执行流程可以通过框架来控制。流程的控制权从程序员“反转”到了框架。

实际上,实现控制反转的方法有很多,有类似于模板设计模式的方法之外,还有依赖注入等方法,所以,控制反转并不是一种具体的实现技巧,而是一个比较笼统的设计思想,一般用来指导框架层面的设计。

那什么是依赖注入呢(DI)?

依赖注入跟控制反转恰恰相反,它是一种具体的编码技巧。依赖注入的英文翻译是 Dependency Injection,缩写为 DI。 那到底什么是依赖注入呢?我们用一句话来概括就是:不通过 new() 的方式在类内部创建依赖类对象,而是将依赖的类对象在外部创建好之后,通过构造函数、函数参数等方式传递(或注入)给类使用。

二、

发表评论

表情:
评论列表 (有 0 条评论,263人围观)

还没有评论,来说两句吧...

相关阅读