1 回答

TA貢獻(xiàn)1811條經(jīng)驗(yàn) 獲得超5個(gè)贊
我最終創(chuàng)建了一個(gè)domain包含接口和定義的包Config。
所以domain/domain.go我有
package domain
type Config struct {
Cache
}
type Runner interface {
Run() string
}
type Cache interface {
// ...
}
如上所述,跑步者在子包中構(gòu)建。我不導(dǎo)出類型,而是在每個(gè)包中都有一個(gè)函數(shù)收集所有類型并將它們作為接口返回。
runner/blue/blue.go:
package blue
import "my/domain"
func All(config domain.Config) (list []domain.Runner) {
list = append(list, fooRunner{Config: config})
list = append(list, barRunner{Config: config})
return
}
runner/runner.go:
package runner
import (
"my/runner/blue"
"my/runner/red"
"my/runner/domain"
)
func All(config domain.Config) (list []domain.Runner) {
list = append(list, blue.All(config)...)
list = append(list, red.All(config)...)
return
}
- 1 回答
- 0 關(guān)注
- 135 瀏覽
添加回答
舉報(bào)