golang 使用 Context 实现 IoC 容器
golang 使用 Context 实现 IoC 容器
参考文章 控制反转(IoC)与依赖注入(DI) 指出了依赖注入可以降低程序的耦合性。 能更好的拆分功能与基础设施。
那么在 golang 中又怎么实现呢?
- 实现了一个
MysqlDriver
实现我们所有的数据存取操作。 并在全局域中实例化了一个对象my
。 - 在
main.go
中创建了一个ctx := context.Background()
- 使用使用
ctx
作为 IoC 容器, 使用db
作为 key 将my
对象存放进去。 - 在
save(ctx)
正常传递 ctx - 在
save()
函数内部, 使用 context 特性, 将db
对应的对象取出来, 并进行db.(*MysqlDriver)
断言,还原成my
实例对象。 - 使用
my
的方法, 例如my.Save()
进行数据存储操作。
至此, context 实现了 IoC 容器的功能。
- 原文链接:https://typonotes.com/posts/2021/07/27/ioc-by-golang-context/
- 本文为原创文章,转载注明出处。
- 欢迎 扫码关注公众号
Go与云原生
或 订阅网站 https://typonotes.com/ 。 - 第一时间看后续精彩文章。觉得好的话,请猛击文章右下角「在看」,感谢支持。