适配器模式
适配器模式(Adapter Pattern)是一种结构型设计模式,用于将一个类的接口转换为另一个类所期望的接口,以便两个类能够协同工作而无需修改其原有的接口。
适配器模式通常用于以下情况:
- 转换接口:当现有的类或组件提供的接口与客户端要求的接口不兼容时,可以使用适配器模式进行转换。适配器作为中间层,通过实现客户端期望的接口,并持有现有类的实例,在两者之间进行接口的转换和适配。
- 重用现有功能:当需要重用一个已有类,但其接口与当前系统要求不符时,可以使用适配器模式。适配器通过实现目标接口并将调用委托给现有类来重用现有类的功能。
适配器模式的优点:
- 重用现有功能,无需修改原有接口。
- 解耦客户端和现有类,提高代码的可维护性和可复用性。
- 提供接口转换和适配,使不兼容的接口能够协同工作。
- 增加系统的灵活性和扩展性。
适配器模式的缺点:
- 增加复杂性,引入额外的类和对象。
- 可能引入性能损失。
- 限制对现有类的修改。
# 目标接口
class Target:
def request(self):
raise NotImplementedError
# 对象适配器
class Adapter(Target):
def __init__(self, adaptee):
self.adaptee = adaptee
def request(self):
# 调用现有类的方法进行适配
self.adaptee.specific_request()
class Adaptee:
def specific_request(self):
print("Adaptee's specific request")
# 类适配器
class NewAdaptee(Target, Adaptee):
def request(self):
self.specific_request()
# 使用适配器
adapter = Adapter(Adaptee())
adapter.request()
# 使用适配器
adapter2 = NewAdaptee()
adapter2.request()