为了账号安全,请及时绑定邮箱和手机立即绑定

Go:如何解决作为参数在两个包之间传递的结构的依赖关系?

Go:如何解决作为参数在两个包之间传递的结构的依赖关系?

Go
慕桂英3389331 2022-09-26 20:06:10
不知道构建这个的最佳实践是什么,所以我没有循环依赖关系,我有一个公开的包,它需要一个存储,因为它需要访问数据库,但它也有一些结构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个赞

首先,这个问题有点主观,因为它在很大程度上取决于你的项目和你的项目的布局。话虽如此,如果我是你,我会这样做。

考虑添加一个包。包很少依赖于其他任何内容,但所有内容都将依赖于包。然后,您的 和 包 都可以导入包,而不必担心周期性依赖关系。typestypestypesstoreservicestypes

箭头表示依赖关系/导入


查看完整回答
反对 回复 2022-09-26
  • 1 回答
  • 0 关注
  • 117 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号