我对正确配置电线没有什么问题我有以下设置
路由器
func NewRouter(routes []RouterPath) AppRouter {
r := &appRouter{
routes: routes,
}
return r
}
路由器接口
type RouterPath interface {
Register(root *mux.Router) (p *mux.Router)
}
而且我确实很少有控制器可以实现这个接口,目前我如何找出如何制作电线来解决 DI 的最好方法就是这样
var routersSet = wire.NewSet(
routers.NewAuth,
routers.NewRoot,
routers.NewUser,
routers.NewPhpInfo,
)
func RouterProvider(info *routers.PhpInfo, root *routers.Root, user *routers.User) web.AppRouter {
routes := []web.RouterPath{
info,
root,
user,
}
return routers.NewRouter(routes)
}
func Init() Kernel {
wire.Build(
routersSet,
RouterProvider,
NewKernel,
)
return nil
}
我遇到的问题是我必须将过渡层添加到 NewRouter,因为它需要路由数组。这将很容易增长,并且方法定义将难以维护。我很想看到 smtg 像将 wire.ProviderSet 放入数组并将其用作 NewRouter 的参数,但我不知道如何做到这一点。
有没有更好的方法来代替这个?