适配器模式模式Golang

适配器模式

将一个接口转换成客户希望的另一个接口,适配器模式使接口不兼容的那些类可以一起工作,其别名为包装器(Wrapper)。
适配器模式既可以作为类结构型模式,也可以作为对象结构型模式。

应用案例:

  1. 应用的最多的莫过于代码/接口升级,而又需要保证老接口的兼容性,这个时候,为了让老接口继续工作, 我们需要提供一个中间层,
    让老接口对外的接口不变,但实际上代码却调用了新代码。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
type targetInterface interface {
operationA()
}

// someInterface 这是目标类targetClass实现的接口
type someInterface interface {
operationB()
}

// targetClass 目标对象,需要被匹配的类
type targetClass struct{}

// operationB 目标对象的方法
func (*targetClass) operationB() {
fmt.Println("调用到 targetClass的方法 operationB 成功!!")
}
// Adapter 适配器
type Adapter struct {
targetClass // 继承类 targetClass ,类适配器写法
// targetClass targetClass // 聚合类 targetClass, 对象适配器写法
}

// operationA 实现targetInterface方法
func (a *Adapter) operationA() {
fmt.Println("调用接口 operationA")
a.operationB() // 类适配器写法
// a.targetClass.operationB() // 对象适配器写法
}


Powered by Hexo and Hexo-theme-hiker

Copyright © 2018 - 2021 Noonde All Rights Reserved.

UV : | PV :