本文首发于我的个人博客
本文记录了作者在golang开发中,通过抽取接口,依赖注入的方式,解决包与包之间的不合理引用关系。
总结来说:
面向接口编程,并且golang中接口函数的参数最好是标准库的类型
场景
目前项目中有一个业务逻辑包business_logic,两个工具库包pkg1和pkg2,其中
pkg1是旧库,API不宜改动,pkg2是新库,尚未正式使用business_logic会使用pkg1和pkg2pkg1内部要添加使用pkg2的逻辑
// pkg1/main.go
package pkg1
import "pkg2"
func ExternalAPI() {
pkg2.ExternalAPI(pkg2.S{
})
}
// pkg2/main.go
package pkg2
type S struct {
param1 int
}
func ExternalAPI(s S) {
}
// business_logic/main.go
package main
import (
"pkg1"
"pkg2"
)
func main() {
pkg1

最低0.47元/天 解锁文章
1040

被折叠的 条评论
为什么被折叠?



