Go工程化 - 依赖注入
warning:
这篇文章距离上次修改已过447天,其中的内容可能已经有所变动。
package main
import (
"fmt"
)
// 定义接口
type Greeter interface {
Greet() string
}
// 实现接口的具体结构体
type EnglishGreeter struct{}
// EnglishGreeter 实现 Greeter 接口
func (eg EnglishGreeter) Greet() string {
return "Hello!"
}
// 依赖注入的函数,接受 Greeter 接口类型的参数
func Greet(g Greeter) {
fmt.Println(g.Greet())
}
func main() {
// 创建 EnglishGreeter 的实例
englishGreeter := EnglishGreeter{}
// 调用 Greet 函数,并将 englishGreeter 作为依赖传递
Greet(englishGreeter)
}这段代码定义了一个Greeter接口和一个实现了该接口的EnglishGreeter结构体。Greet函数接受一个Greeter类型的参数,该参数通过依赖注入的方式接收实现了Greeter接口的对象。这样的设计使得Greet函数可以使用任何实现了Greeter接口的对象,从而实现了解耦和可测试性。在main函数中,我们创建了EnglishGreeter的实例,并将其传递给Greet函数,输出了问候语。这是一个简单的依赖注入示例。
评论已关闭