1 回答

TA貢獻1811條經驗 獲得超5個贊
我最終創建了一個domain包含接口和定義的包Config。
所以domain/domain.go我有
package domain
type Config struct {
Cache
}
type Runner interface {
Run() string
}
type Cache interface {
// ...
}
如上所述,跑步者在子包中構建。我不導出類型,而是在每個包中都有一個函數收集所有類型并將它們作為接口返回。
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 關注
- 136 瀏覽
添加回答
舉報