[面试问题] 依赖注入
汇编有关 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;
}
}
可以看出,每个类都保证是独立的。
- 添加一个新的 "水果 "不会改变 "产品"; 2.
- 对象之间形成关系,而不是类之间的关系
댓글 작성
게시글에 대한 의견을 남겨 주세요.