gpt4 book ai didi

go - 如何避免共享包的依赖循环?

转载 作者:行者123 更新时间:2023-12-01 22:45:01 25 4
gpt4 key购买 nike

我知道这被问了很多,但我仍然不明白如何解决它。假设我有这个结构:

foo
- foos.go // custom foo type
database
- database.go // interface
- postgres.go // implementation

database.go我需要导入 foo ,所以我可以 saveOnDb(foo.myfoo) ,并在 foos.go我需要导入 database ,所以我可以 database.saveOnDb(myfoo) .

由于导入周期,这不会编译。正确的设计是什么?

最佳答案

数据库不应该依赖于 foo,它应该足够抽象。

而不是 saveOnDb(foo.myfoo)你能用一个接口(interface)吗?

type somefoo interface{}

saveOnDb(somefoo)

然后调用它
database.saveOnDb(myfoo)

关于go - 如何避免共享包的依赖循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58413344/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com