给定以下接口:
type Store interface {
// some methods
}
我计划创建一个“工厂”,它将根据传入的值为我提供正确的实现:Store
func CreateStore(envVar EnvironmentProvider) Store {
if envVar == "A" {
return &StoreA{
//dependencies to create a StoreA
}
else {
return &DefaultStore {
// dependencies to create a DefaultStore
}
}
我有点纠结于如何为OR提供依赖项。它们依赖于完全不同的对象,我不想将两者都传递到函数的依赖关系中,以及作为函数的参数。此外,将来可能会有更多的实施。当然,我可以简单地在每个if分支中创建依赖项,但这不适合测试。对于这种情况,您使用哪种模式?StoreADefaultStoreStoreADefaultStoreCreateStoreStorego
炎炎设计
相关分类