一、什么是依赖注入
- 依赖注入和控制反转:
说到依赖注入,经常伴随着控制反转(IOC)。控制反转是一种思想,是解决的问题的一种方案,而依赖注入(DI)就是典型的实现方法
- 手动实现依赖注入:
定义一个类A,其中类A依赖于类B,也称类B是类A的依赖,类A是类B的宿主。当类A要使用类B的属性Did时,需要先生成类B的实例b,然后把实例b赋给类A中的属性B,这就是依赖注入
二、使用 facebookgo/inject 实现运行时的依赖注入
- go 语言社区有很多依赖注入框架,可以分为两大类:
- 依赖反射实现的运行时的依赖注入(
facebook/inject
、uber/dig
)
- 使用代码生成实现的依赖注入(
google/wire
)
- facebookgo/inject 实现依赖注入:
类A的实例a是需要被注入的对象,类B的实例b是依赖的组件 将a、b的依赖关系交给第三方(IOC容器)来控制,调用Provide我们不再需要编写复杂的依赖代码(各种参数,实例的互相传入)。执行完Populate后,我们就可以直接使用实例a,其中需要依赖的组件在运行时由IOC容器来注入。
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于