使用google/wire进行依赖注入
2012 年 4 月 30 日
// wire.go func InitializeEvent() Event { wire.Build(NewEvent, NewGreeter, NewMessage) return Event{} }
与其依次初始化每个组件并将其传递给下一个组件,不如使用一个连接调用。构建传递我们想要使用的初始化器。在Wire中初始化器被称为“提供者”,即提供特定类型的函数。我们为事件添加一个零值作为返回值,以满足编译器的要求。注意,即使我们向事件添加值,Wire也会忽略它们。事实上,注入器的目的是提供关于使用哪些提供者来构造一个事件的信息,因此我们将在文件顶部的build约束中把它从最终的二进制代码中排除掉:
//+build wireinject类似
//+build wireinject // The build tag makes sure the stub is not built in the final build. package main