加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Golang结构建构的一般性

发布时间:2020-12-16 09:22:09 所属栏目:大数据 来源:网络整理
导读:我有一个其他两个对象实现的结构.在这种情况下,键入A和B repo.有一些初始化代码,在这里表示为省略号.初始化代码在两个构造函数之间完全重复,并且不是什么大问题,而我只有两个dbRepo,但是当我创建更多时,我会更担心不好的做法.有没有办法用界面来概括这个? t
我有一个其他两个对象实现的结构.在这种情况下,键入A和B repo.有一些初始化代码,在这里表示为省略号.初始化代码在两个构造函数之间完全重复,并且不是什么大问题,而我只有两个dbRepo,但是当我创建更多时,我会更担心不好的做法.有没有办法用界面来概括这个?

type dbRepo struct {
    foo string
    bar string
}

type typeARepo dbRepo
type typeBRepo dbRepo

func newTypeARepo(foo,bar string) {
    ...
}

func newTypeBRepo(foo,bar string) {
    ...
}

解决方法

我个人在Go中观察到的这种做法(也是有效的Go或者Go教程入门中推荐的那种做法)就是定义一个NewdbRepo函数并将其用于所有瞬时.它的实现看起来像;

func NewdbRepo(f,b string) *dbRepo {
    return &dbRepo{ foo:f,bar:b}
}

您无法像在大多数C语言中那样实际定义构造函数,因此您只需提供一个包作用域的方法来为您构建.此外,如果您没有使用复合文字(我在NewdbRepo实现中使用的启动样式),那么您可能会发现它足够简洁以满足您的需求.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读