golang抽取接口,依赖注入(依赖倒置)解决包引用关系

本文首发于我的个人博客
本文记录了作者在golang开发中,通过抽取接口,依赖注入的方式,解决包与包之间的不合理引用关系。

总结来说:

面向接口编程,并且golang中接口函数的参数最好是标准库的类型

场景

目前项目中有一个业务逻辑包business_logic,两个工具库包pkg1pkg2,其中

  • pkg1是旧库,API不宜改动,pkg2是新库,尚未正式使用
  • business_logic会使用pkg1pkg2
  • pkg1内部要添加使用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() {
   
    pkg
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值