说明

适配器模式是一种结构型设计模式。我们用常用的两种笔记本电脑来说明一下这种设计模式。

我们常用的笔记本无非是这两大类:

  1. Macbook Pro
  2. Windows Laptop

当前这两类笔记本常见的一个区别大概是USB接口的类型了:

  1. Macbook Pro的USB接口现在多为扁圆形的Type-C接口
  2. Windows笔记本的USB接口则多为方形的Type-A接口

现在我手上有一个Type-C扁圆口的U盘,但是我用的笔记本Windows,这该怎么办呢?

这也是编程时常遇到的一种问题:

我们有一个已经封装严谨的类(如Windows笔记本),它提供了一些功能并指定对接参数的类型(如Type-A方形USB接口)。但是现在有一个不同类型的实例(Type-C扁圆形口U盘),也想用这个已经封装好的类提供的功能。此时该怎么做?

Adapter
  • 按照已有类指定的参数类型进行实现
  • 转译调用方的请求
Adapter
UML类图

看下类图:

然后是前面举的例子的类图:

代码

示例代码如下:

computer.go

mac.go

windows.go

windowsAdapter.go

输出内容:

代码已上传至GitHub:

END!