设计模式--适配器(Adapter)模式

模式定义

将一个类的接口转换成客户希望的另一个接口,适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作

类图

设计模式--适配器(Adapter)模式_第1张图片

应用场景

1.当你希望使用某些现有类,但其接口与你的其他代码不兼容时;

2.当你希望重用几个现有的子类,这些子类缺少一些不能添加到父类中的公共功能时;

优点

1.符合单一职责原则;

2.符合开闭原则

要点总结

  • Adapter模式主要应用于“希望复用一些现存的类,但是接口又与复用环境要求不一致的情况”,在遗留代码复用、类库迁移等方面非常有用
  • GoF 23定义了两种Adapter模式的实现结构,对象适配器和类适配器,但类适配器采用“多继承”的实现方式,一般不推荐使用,对象适配器采用“对象组合”的方式,更符合松耦合精神

Go语言代码实现

工程目录

在这里插入图片描述

adapter.go

package Adapter

import "fmt"

//适配的目标接口
type Target interface {
   Request()
}

//被适配的接口
type Adaptee struct {

}

//实际函数
func (a *Adaptee) SpecficRequest() {
   fmt.Println("SpecficRequest")
}

type Adapter struct {
   *Adaptee
}
func (a *Adapter) Request() {
   a.SpecficRequest()
}

adapter_test.go

package Adapter

import (
   "testing"
)

func TestAdapter_Request(t *testing.T) {
   adaper := Adapter{} //适配器
   adaper.Request()
}

你可能感兴趣的:(设计模式golang)