Facebook 在 Golang 依赖注入的实现
依赖注入是一个经典的设计模式,可有效地解决项目中复杂的对象依赖关系。
对于有反射功能的语言来说,实现依赖注入都比较方便一些。在 Golang 中有几个比较知名的依赖注入开源库,例如 google/wire、uber-go/dig 以及 facebookgo/inject 等。
本文将基于 facebookgo/inject
介绍依赖注入, 接下来将会着重讨论以下几点内容:
- 依赖注入出现的背景以及解决的问题
- facebookgo/inject 的使用方法
- facebookgo/inject 的缺陷