IOC以及IOC容器浅谈(一)

276 阅读2分钟

这是我参与新手入门的第1篇文章

常说的IOC到底是什么?

老生常谈,先来一句英语Inversion of Control(控制反转)。字面意思,就是控制反转。控制由程序员转移到框架来实现,是一种编程风格或者是编程原则。目前我的认知,主要是为了解耦,减少业务开发人员(curd工程师)的工作,可以让业务开发人员专注于业务即功能实现的开发。

IOC常用的实现方式

目前这一块的理解,还有待完善,只是看课程里老师介绍,有这么几种实现方式。后续会慢慢补充,在spring框架中,找到相关的实现代码,然后发布到论坛与大家讨论。

  1. 依赖查找
  2. 依赖注入
  3. 模板方法模式

IOC和DI有什么区别

上面已经说到,IOC是一个控制反转的编程原则,而DI(Depedency Injection依赖注入)就是控制反转的一种实现方式。

依赖注入要有以下几种实现方式:

  1. 构造器注入
public class A{
    
    private final B b;
    
    public A(B b){
        this.b = b;
    }
    
    public void C(){
        b.c();
    }
}
  1. setter函数注入
public class A{
    private B b;
    public void setB(B b){
        this.b = b;
    }
}
  1. 属性注入
public class A{
    @Autowired
    private B b;
    
    public void C(){
        b.c();
    }
}

可以发现,无论是哪种注入方式,就是把控制权转移到了另外一个类上,可以抽象的概括为A类是框架流程的一个缩影,而B类就是框架把具体实现留给我们程序员去实现的一个入口。

为什么我之前不懂IOC和DI这两个概念

我总结了一下,大概有几点:

  1. 英语不好,IOC,DI是哪几个单词拼写都不懂
  2. 不钻研,只知道大家说spring是个IOC框架,仅限于此,也不深究。其实我问了我好多同事(curd工程师),大家都不太明白。

写给以后的自己

希望以后,可以坚持写一些博客,沉淀自己的技术,和论坛里的各位,分享讨论技术。不止于代码~