Где мы должны определить интерфейс Go в сценарии с несколькими потребителями? Как насчет интерфейса в производителе, чтобы показать общность?
Может кто-нибудь дать мне конкретный пример этого совета?
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() {
}
Можно ли дублировать интерфейсы в двух местах, чтобы удовлетворить "определить потребителя, где он потребляется".
Как насчет использования интерфейса, чтобы показать общность? Это определяет интерфейс не там, где он потребляется
Например, hash/crc32 и hash/adler32, реализующие hash.Hash32
1 ответ
Вы могли бы переместить DB
интерфейс в другой пакет, то worker
а также listener
пакеты могут оба использовать это.