控制反转和依赖注入
6 月 15, 2022 • ☕️☕️☕️ 5 min read
控制反转
控制反转是一种设计思想,可以用来降低代码之间的耦合度,例如我们在 Class A 中用到了 Class B 的对象 b,一般情况下,需要在 A 的代码中显式地用 new 建立 B 的对象。
class Person {}
class Boy {
person: Person
constructor() {
// 显式实例化
this.person = new Person()
}
}
采用依赖注入技术之后,A 的代码只需要定义一个 private 的 B 对象,不需要直接 new 来获得这个对象,而是通过相关的容器控制程序来将 B 对象在外部 new 出来并注入到 A 类里的引用中。
class Person {}
class Boy {
person: Person
constructor(private readonly person: Person) {}
}
依赖注入
依赖注入是实现控制反转的一种方式,例如上述例子,可以看到并没有实例化的代码,实例化对象的工作其实交给了控制反转的容器,然后通过依赖注入的方式提供给使用这个对象的地方。