适配器模式是一种结构型设计模式,它允许将一个类的接口转换成客户端所期望的另一个接口。适配器模式通常在接口不兼容的情况下使用,它允许原本不兼容的接口或者类协调起来工作。
适配器模式的结构包括以下几个角色:
- 目标接口(Target):定义了客户端期望的接口,适配器类通过实现或者继承目标接口来适配客户端。
- 适配者(Adaptee):已经存在的接口或者类,但与客户端期望的接口不兼容。
- 适配器(Adapter):将适配者的接口转换成客户端期望的接口,客户端通过适配器访问适配者。
适配器模式的常见应用场景包括:
- 类适配器:通过多重继承来实现适配器,使适配器类成为客户端所期望的接口和适配者类的子类。
- 对象适配器:通过组合适配器类和适配者类来实现适配器,使适配器类持有适配者类的实例,并实现目标接口。
下面是一个简单的 Python 实际案例,演示了对象适配器模式的使用场景:
class AmericanSocket:
def insert_in_american_socket(self):
return "正在使用美式插座充电"
class ChineseSocketAdapter:
def __init__(self, socket):
self.socket = socket
def insert_in_chinese_socket(self):
return f"适配器:{self.socket.insert_in_american_socket()} 转换成中国标准插座"
# 客户端代码
if __name__ == "__main__":
american_socket = AmericanSocket()
adapter = ChineseSocketAdapter(american_socket)
print(adapter.insert_in_chinese_socket())
在这个案例中,AmericanSocket 是适配者类,表示美式插座;ChineseSocketAdapter 是适配器类,用于将美式插座转换成中国标准插座。通过适配器类 ChineseSocketAdapter,客户端可以通过统一的接口 insert_in_chinese_socket() 使用适配者类的功能,而无需直接调用适配者类的接口。
查看原文:适配器模式
关注公众号 "字节航海家" 及时获取最新内容