如何实现一个IOC容器?

wuchangjian2021-11-09 07:35:58编程学习

如何实现一个IOC容器?

IOC(Inversion of Control),意思是控制反转,不是什么技术,而是一种设计思想,IOC意味着将你设计好的对象交给容器控制,而不是传统的在你的对象内部直接控制。

在传统的程序设计中,我们直接在对象内部通过new进行对象创建,是程序主动去创建依赖对象,而IOC是有专门的容器来进行对象的创建,即IOC容器来控制对象的创建。

在传统的应用程序中,我们是在对象中主动控制去直接获取依赖对象,这个是正转,反转是由容器来帮忙创建及注入依赖对象,在这个过程过程中,由容器帮我们查找级注入依赖对象,对象只是被动的接受依赖对象。

  1. 先准备一个基本的容器对象,包含一些map结构的集合,用来方便后续过程中存储具体的对象
  2. 进行配置文件的读取工作或者注解的解析工作,将需要创建的bean对象都封装成BeanDefinition对象存储在容器中
  3. 容器将封装好的BeanDefinition对象通过反射的方式进行实例化,完成对象的实例化工作
  4. 进行对象的初始化操作,也就是给类中的对应属性值就行设置,也就是进行依赖注入,完成整个对象的创建,变成一个完整的bean对象,存储在容器的某个map结构中
  5. 通过容器对象来获取对象,进行对象的获取和逻辑处理工作
  6. 提供销毁操作,当对象不用或者容器关闭的时候,将无用的对象进行销毁

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。