【设计模式】 适配器模式
适配器模式(Adapter Pattern)是一种结构型设计模式,它允许将不兼容的接口转换为另一个接口,以满足客户端的需求。在 Golang 中实现适配器模式可以使用接口和组合来实现。
下面是一个使用 Golang 实现适配器模式的示例代码:
package main
import "fmt"
type Target interface {
Request()
}
type Adaptee struct {}
func (a *Adaptee) SpecificRequest() {
fmt.Println("Adaptee.SpecificRequest()")
}
type Adapter struct {
adaptee *Adaptee
}
func (a *Adapter) Request() {
a.adaptee.SpecificRequest()
}
func main() {
adaptee := &Adaptee{}
adapter := &Adapter{adaptee}
adapter.Request()
}
在上面的代码中,我们定义了一个 Target 接口,它包含一个 Request 方法,用于执行请求。我们还定义了一个 Adaptee 结构体,它包含一个 SpecificRequest 方法,用于执行特定的请求。
接着,我们定义了一个 Adapter 结构体,它包含一个指向 Adaptee 的指针,并实现了 Target 接口的 Request 方法。该方法会调用 Adaptee 的 SpecificRequest 方法,将不兼容的接口转换为 Target 接口。
最后,在 main 函数中,我们创建了一个 Adaptee 实例,并将其传递给 Adapter 实例。我们调用 adapter.Request() 方法,实际上是调用了 Adaptee.SpecificRequest() 方法,但由于适配器的存在,客户端无需直接调用 Adaptee 的方法,从而实现了接口的兼容。