这是我参与新手入门的第1篇文章
常说的IOC到底是什么?
老生常谈,先来一句英语Inversion of Control(控制反转)。字面意思,就是控制反转。控制由程序员转移到框架来实现,是一种编程风格或者是编程原则。目前我的认知,主要是为了解耦,减少业务开发人员(curd工程师)的工作,可以让业务开发人员专注于业务即功能实现的开发。
IOC常用的实现方式
目前这一块的理解,还有待完善,只是看课程里老师介绍,有这么几种实现方式。后续会慢慢补充,在spring框架中,找到相关的实现代码,然后发布到论坛与大家讨论。
- 依赖查找
- 依赖注入
- 模板方法模式
IOC和DI有什么区别
上面已经说到,IOC是一个控制反转的编程原则,而DI(Depedency Injection依赖注入)就是控制反转的一种实现方式。
依赖注入要有以下几种实现方式:
- 构造器注入
public class A{
private final B b;
public A(B b){
this.b = b;
}
public void C(){
b.c();
}
}
复制代码
- setter函数注入
public class A{
private B b;
public void setB(B b){
this.b = b;
}
}
复制代码
- 属性注入
public class A{
@Autowired
private B b;
public void C(){
b.c();
}
}
复制代码
可以发现,无论是哪种注入方式,就是把控制权转移到了另外一个类上,可以抽象的概括为A类是框架流程的一个缩影,而B类就是框架把具体实现留给我们程序员去实现的一个入口。
为什么我之前不懂IOC和DI这两个概念
我总结了一下,大概有几点:
- 英语不好,IOC,DI是哪几个单词拼写都不懂
- 不钻研,只知道大家说spring是个IOC框架,仅限于此,也不深究。其实我问了我好多同事(curd工程师),大家都不太明白。
写给以后的自己
希望以后,可以坚持写一些博客,沉淀自己的技术,和论坛里的各位,分享讨论技术。不止于代码~
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END