golang 使用 Context 实现 IoC 容器
2023-02-18 16:39:40 时间
参考文章 控制反转(IoC)与依赖注入(DI) 指出了依赖注入可以降低程序的耦合性。能更好的拆分功能与基础设施。
那么在 golang 中又怎么实现呢?
代码地址 golang-context-ioc.go
- 实现了一个
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 容器的功能。
相关文章
- 将你的PHP程序升级到PHP7.0
- go下载
- Centos搭建GIT服务器
- golang使用multiconfig后导致glog无法接受命令行参数
- 关闭OSX的rootless和修改MAMP的php.ini配置
- nginx+php 上传大文件
- 让 PHPSTORM 更智能的支持 Laravel
- docker使用笔记VI -- PHP
- notepad++一键编译运行C or C++ (MinGW编译器)
- 批量复制ssh密钥到Linux系统的主机
- PhpStorm 一些配置
- Golang简介
- 在linux或MacOS统创建和解压cab(cabinet)文件
- PHP验证IP
- PHP官方中文手册chm下载地址
- golang预定义的系统名称
- 使用docker搭建私有git服务(gogs+https)
- golang的goproxy
- C/C++ 实现简易特征码扫描器
- C/C++ ImGUI劫持Dx9绘制窗体