以下代码段声明了两个具有共同依赖关系的 google/wire 初始化器。强制只创建一个配置实例的最佳方法是什么?
我可以将共享依赖项向下传递给 InitializeStorageHandler 函数,但如果我的理解是正确的,那将破坏 DI 的目的。
当然,我也可以使用单例模式。我不确定这是否是做事的“Go-Way”。有最佳实践吗?
package api
import (
"../storage"
"../config"
"github.com/google/wire"
)
func InitializeServer() (*Server, error) {
panic(wire.Build(config.NewConfiguration, NewServer))
}
func InitializeStorageHandler() *StorageHandler {
panic(wire.Build(config.NewConfiguration, storage.NewStorage, storage.NewService, NewStorageHandler))
}
忽然笑
相关分类