Python设计模式-05-适配器模式
适配器模式是一种结构型设计模式,它可以将一个类的接口转换成客户端所期望的另一个接口。适配器模式通常包括以下几个角色:
- 目标接口(Target):定义了客户端所期望的接口,可以是一个抽象类或接口。
- 适配器(Adapter):实现了目标接口,并持有一个被适配对象的引用,负责将客户端的请求转换成被适配对象的相应接口。
- 被适配对象(Adaptee):定义了一个已经存在的接口,但与客户端所期望的接口不一致。
下面是一个简单的 Python 示例,演示了如何使用适配器模式将一个已有的类的接口转换成客户端所期望的接口:
class Target:
def request(self):
pass
class Adaptee:
def specific_request(self):
pass
class Adapter(Target):
def __init__(self, adaptee):
self.adaptee = adaptee
def request(self):
self.adaptee.specific_request()
adaptee = Adaptee()
adapter = Adapter(adaptee)
adapter.request()
在上面的示例中,我们定义了一个目标接口 Target,它定义了客户端所期望的接口。然后,我们定义了一个被适配对象 Adaptee,它定义了一个已经存在的接口,但与客户端所期望的接口不一致。接下来,我们定义了一个适配器 Adapter,它实现了目标接口,并持有一个被适配对象的引用,负责将客户端的请求转换成被适配对象的相应接口。在 request()
方法中,我们调用被适配对象的 specific_request()
方法来完成客户端的请求。最后,我们创建了一个被适配对象 adaptee
和一个适配器 adapter
,并调用适配器的request()
方法来完成客户端的请求。
需要注意的是,适配器模式可以帮助我们复用已有的类,但也可能会导致代码的复杂性增加。另外,需要确保适配器模式中的适配器类实现了目标接口,并将客户端的请求转换成被适配对象的相应接口,否则可能会导致适配失败。