Следующий фрагмент объявляет два инициализатора Google / Wire, которые имеют общую зависимость.Каков наилучший способ обеспечить создание только одного экземпляра конфигурации?
Я мог бы передать разделяемую зависимость в функцию InitializeStorageHandler, но это нарушило бы цель DI, если мое понимание верно.
Конечно, я мог бы также использовать шаблон Singleton.Я не уверен, что это «путь» в делах.Есть ли лучшая практика?
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))
}