gpt4 book ai didi

go - 多Consumer场景下Go接口(interface)应该在哪里定义?生产者中的界面如何显示通用性?

转载 作者:数据小太阳 更新时间:2023-10-29 03:21:20 25 4
gpt4 key购买 nike

有人可以给我这个建议的具体例子吗?

https://github.com/golang/go/wiki/CodeReviewComments#interfaces

这就是我遵循的方式吗?

package worker

type interface DB {
getAllTable()
}


type worker struct {
db DB
}

func (w worker) doSomething() {
w.db.getAllTable()
}

package listener

type interface DB {
getAllTable()
}

type listener struct {
db DB
}

func (l listener) doSomething() {
l.db.getAllTable()
}

package msql

type mysql struct {}

func (mysql) getAllTable() {
}

是否可以在 2 个地方复制接口(interface)以满足“在消费时定义消费者”。


如何使用界面来显示通用性?它定义接口(interface)而不是它被消费的地方

例如 hash/crc32 和 hash/adler32 实现 hash.Hash32

最佳答案

您可以将 DB 接口(interface)移动到不同的包中,然后 workerlistener 包都可以使用它。

关于go - 多Consumer场景下Go接口(interface)应该在哪里定义?生产者中的界面如何显示通用性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53381694/

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