Go 实现适配器模式

21 min read
  1. 定义Target接口
type Target interface {
    Request() string
}
  1. 定义Adaptee接口
type Adaptee interface {
    SpecificRequest() string
}
  1. 实现Adaptee接口
type AdapteeImpl struct {}

func (a *AdapteeImpl) SpecificRequest() string {
    return "Adaptee method is called"
}
  1. 定义Adapter结构体并实现Target接口
type Adapter struct {
    Adaptee Adaptee
}

func (a *Adapter) Request() string {
    return a.Adaptee.SpecificRequest()
}
  1. 客户端代码
func main() {
    adaptee := &AdapteeImpl{}
    adapter := &Adapter{
        Adaptee: adaptee,
    }
    fmt.Println(adapter.Request())
}