依赖注入(DI)

 

Spring笔记整理-依赖注入和控制反转

 

以小汽车为例展示依赖注入问题

要制作一辆小汽车,如果要从下而上做的话,要先做轮子,然后做地盘,轮子大小约束底盘大小,做完了底盘最后再做车架,而底盘又约束车架的大小。

假设一开始轮子尺寸为15,后来业务需求要把轮子增大到25。那么底盘和车架的尺寸也要重新去设计。这样就会导致一个问题:一个小小的改动就会导致整体的修改。耦合度太高。

public class Wheel{

private int size;

Wheel(int size){

this.size = size;

}

}

Spring笔记整理-依赖注入和控制反转

 

public class Chassis{

private int wheel;

Chassis(int size){

wheel = new Wheel(size);

}

}

Spring笔记整理-依赖注入和控制反转

 

public class Car{

private int Chassis chassis;

Car(int size){

chassis= new Chassis(size);

}

public void finish(){

log.info("new car");

}

}

Car car = new Car();

car.finish();

如果size改变,后面的类的size全都要变,这里三个类就要改三个,如果十个类,就要改十个。会很麻烦。

使用依赖注入实现控制反转,即上层控制下层

把底层的类作为参数传递给上层类,实现上层对下层的控制

Spring笔记整理-依赖注入和控制反转

Spring笔记整理-依赖注入和控制反转

代码要改成这样,但是还是要new很多对象

Spring笔记整理-依赖注入和控制反转

IOC容器

Spring笔记整理-依赖注入和控制反转

Spring笔记整理-依赖注入和控制反转

相关文章:

  • 2022-12-23
  • 2021-10-23
  • 2022-12-23
  • 2021-06-12
  • 2021-09-26
  • 2021-07-22
猜你喜欢
  • 2022-02-20
  • 2022-12-23
  • 2021-06-14
  • 2021-12-18
  • 2021-10-22
  • 2021-04-06
  • 2022-01-29
相关资源
相似解决方案