中文
[面试问题] 依赖注入

[面试问题] 依赖注入

汇编有关 DI 的面试问题

依赖注入

依赖关系:一个对象使用另一个对象的关系。 → 依赖注入:建立关系的东西

为什么需要依赖注入?

public class Product {

	private Apple apple;
    
    public Product() {
    	this.apple = new Apple();
	}

}

在本示例中,如果一个名为 Product 的类使用了 Apple 构造函数,那么我们就是在使用它,而没有注入它。 当使用 Product 时,可以将其理解为 Apple 附带的依赖关系。在这种情况下,它不是对象之间的连接,而是类之间的关系。

另外,如果我想使用一个名为 Orange 的额外类,我就必须修改 Product 类的构造函数,而这是不灵活的。

最后,总结一下依赖注入的必要性

类之间的强耦合 + 代码不灵活

我们可以说,依赖注入解决了这些问题,所以它是必要的!

解决方案的应用

public interface Fruit {

}

public class Apple implements Fruit {

}

public class Product {

	private Fruit fruit;
    
    public Product(Fruit fruit) {
    	this.fruit = fruit;
    }
    
}

可以看出,每个类都保证是独立的。

  1. 添加一个新的 "水果 "不会改变 "产品"; 2.
  2. 对象之间形成关系,而不是类之间的关系

댓글 작성

게시글에 대한 의견을 남겨 주세요.

댓글 0