背景

公司内部分享了Kratos开源框架,其中有一些思想值得借鉴.

为什么需要依赖注入?

// 附录1

其中提到了依赖注入的2个好处

1.Redis 是基础组件,往往会在项目的很多地方被依赖, 那么如果哪天我们想整体修改 redis sdk 的甚至想把 redis 整体替换成 mysql 时,需要在每个被用到的地方都进行修改,耗时耗力还容易出错。

2.很难对 App 这个类写单元测试,因为我们需要创建一个真实的 redis.Client。

自己的思考:依赖注入的坏处

1.编码违背直觉? 2.可阅读性下降?

参考

1.从 Kratos 设计看 Go 微服务工程实践-Go 的依赖注入框架有两类 2.Fx: Golang中的依赖注入(Dependency Injection)工具(翻译)

原创文章转载请注明出处: Go的依赖注入框架