如何自己实现一个简单的IOC容器

目的

IOC作为Spring的核心概念之一,有必要深入了解下的。本篇目的是写个简单的IOC容器,以此深入了解下IOC的原理

概念

IOC:Inversion of Control,控制反转,依赖注入

​ 控制:控制对象的创建和销毁(生命周期)

​ 反转:将对象的控制权交给IOC容器

约定

  • 所有Bean的生命周期交由Ioc容器管理
  • 所有被依赖的Bean通过构造方法执行注入
  • 被依赖的Bean需要优先创建

优点

  • 所有依赖关系被集中统一管理起来,清晰明了
  • 每个类只需要关注自己的业务逻辑
  • 修改依赖关系变得容易

示例

假设有人需要开车回家这样的场景,那么需要人(可以是tom,marry或者mark),车(可以是奔驰大众宝马等),人的行为依赖于车,基于约定。我们可以这样设计,Car作为抽象接口,奥迪奔驰堆Car接口实现。Marry,Tom都是人,实现人这个接口。其中人的行为作为抽象行为私有类。

0

发表评论

邮箱地址不会被公开。