不知道构建这个的最佳实践是什么,所以我没有循环依赖关系,我有一个公开的包,它需要一个存储,因为它需要访问数据库,但它也有一些结构userUserServicepackage usertype UserParams struct { Client util.HTTPExecutor Store store.Store ...}func NewUserService(params *UserServiceParams) *UserService {...}type User struct { ID int32 `db:"id" json:"id"` Name string `db:"name" json:"name"`}同时,我有一个存储包,它有一个接口,可以采取一些用户结构并保存到数据库中。package storetype Store interface { UpdateUser(ctx context.Context, u *user.User) error}它是否更有意义将结构移动到商店包装中(后者可能最终会为不同的产品组件生成很多这些结构)User将结构移动到单独的公共包中,以便两个包都可以访问它User将结构移动到包下的包中Useruserstructuser谢谢!
1 回答

白衣非少年
TA贡献1155条经验 获得超0个赞
首先,这个问题有点主观,因为它在很大程度上取决于你的项目和你的项目的布局。话虽如此,如果我是你,我会这样做。
考虑添加一个包。包很少依赖于其他任何内容,但所有内容都将依赖于包。然后,您的 和 包 都可以导入包,而不必担心周期性依赖关系。types
types
types
store
services
types
箭头表示依赖关系/导入
- 1 回答
- 0 关注
- 117 浏览
添加回答
举报
0/150
提交
取消