什么是适配器模式?
适配器模式(Adapter Pattern)属于结构型设计模式,它通过引入中间层实现接口转换,使得原本不兼容的对象能够相互协作。
适配器模式主要分为两种实现方式:对象适配器和类适配器。
对象适配器是一种常用的适配器模式实现方式,它通过组合关系来完成适配功能。具体实现时,适配器类会包含一个适配者(Adaptee)对象的实例作为其成员变量,然后通过调用该成员的方法来实现目标接口所需的功能。
类适配器通过继承关系完成适配功能,其核心实现方式是让适配器类同时继承目标接口和被适配者类。
类适配器模式的耦合度高于对象适配器模式,且要求开发者熟悉相关组件的内部实现,因此其应用场景较为有限。
如何实现适配器模式?
对象适配器模式
对象适配器模式采用组合方式实现,主要包含以下三种角色:
1)Target(目标接口):客户端调用的标准接口规范,定义了程序期望的操作方式。
2)Adaptee(适配对象):需要被调整的现有接口,其功能与目标接口存在差异。
3)Adapter(适配器):实现Target接口的中间层,内部封装Adaptee实例。通过将Adaptee的specificRequest()方法映射到Target的request()方法,实现接口间的兼容转换。
定义解码器目标接口DecoderTarget,包含解码方法Decode,代码示例如下:
// DecoderTarget 解码器目标接口
type DecoderTarget interface {
// Decode 解码方法
Decode(str string)
}
定义名为DecodeAdaptee 的适配者类,实现核心方法RealDecode 供适配器调用。代码实现如下:
// DecoderAdaptee 解码器适配者类
type DecoderAdaptee struct {