控制反转(Inversion of Control,缩写为IoC),是面向对象编程中的一种设计原则,可以用来减低计算机代码之间的耦合度。其中最常见的方式叫做依赖注入(Dependency Injection,简称DI)。依赖注入是天生灵活和松散耦合代码的标准技能,通过明确地向组件提供它们所需要的所有依赖关系。在 Go 中通常采用将依赖项作为参数传递给构造函数的情势:
构造函数NewBookRepo在创建BookRepo时需要从外部将依赖项db作为参数传入,我们在NewBookRepo中无需关注db的创建逻辑,实现了代码解耦。
在本文中,我们具体探究了 Go Wire 工具的根本用法和高级特性。它是一个专为依赖注入设计的代码天生工具,它不仅提供了基础的依赖解析和代码天生功能,还支持多种高级用法,如接口绑定和构造结构体。
依赖注入的设计模式应用非常广泛,Wire 工具让依赖注入在 Go 语言中变得更简单。
本文的所有代码在这里。