Golang:依赖注入与wire
warning:
这篇文章距离上次修改已过229天,其中的内容可能已经有所变动。
package main
import (
"github.com/google/wire"
)
// 定义依赖的接口
type Greeter interface {
Greet() string
}
// 实现接口的具体结构体
type EnglishGreeter struct{}
// Greet 实现 Greeter 接口
func (EnglishGreeter) Greet() string {
return "Hello!"
}
// 定义 provider 函数,用于创建 Greeter 实例
func NewEnglishGreeter() Greeter {
return EnglishGreeter{}
}
// 定义 provider set,用于 wire 生成依赖注入的代码
var GreeterSet = wire.NewSet(
NewEnglishGreeter,
)
// 主函数
func main() {
// 初始化依赖,这里省略了 wire 的代码生成步骤,实际使用时需要通过 wire 工具生成相关代码
}
这个例子展示了如何在 Go 语言中使用 wire 库进行依赖注入。首先定义了一个 Greeter 接口和一个实现该接口的 EnglishGreeter 结构体。然后定义了一个 NewEnglishGreeter 函数作为 provider,用于创建 Greeter 实例。最后,使用 wire.NewSet 定义了一个 provider set,这个 set 会被 wire 工具用来生成依赖注入的代码。在 main 函数中,通过 wire 工具生成的代码来初始化和使用依赖。
评论已关闭