用代码讲解一下适配器模式
时间: 2023-12-08 14:55:20 浏览: 25
适配器模式是一种结构型设计模式,它允许将一个类的接口转换成客户端所期望的另一种接口。这种模式通常用于使现有的类能够与其他类一起工作,而不需要修改它们的源代码。
下面是一个使用适配器模式的示例代码:
```python
# 定义一个需要被适配的接口
class Adaptee:
def specific_request(self):
return "specific request"
# 定义一个客户端所期望的接口
class Target:
def request(self):
return "default request"
# 定义一个适配器,将 Adaptee 转换成 Target
class Adapter(Target):
def __init__(self, adaptee):
self.adaptee = adaptee
def request(self):
return self.adaptee.specific_request()
# 客户端代码
def client_code(target):
print(target.request())
if __name__ == "__main__":
adaptee = Adaptee()
adapter = Adapter(adaptee)
client_code(adapter)
```
在上面的代码中,`Adaptee` 是需要被适配的类,它有一个 `specific_request` 方法。`Target` 是客户端所期望的接口,它有一个 `request` 方法。`Adapter` 是适配器类,它将 `Adaptee` 转换成 `Target`,并实现了 `Target` 的 `request` 方法。客户端代码可以接受 `Target` 类型的对象作为参数,因此我们创建了一个 `Adapter` 对象并将其传递给客户端代码。
当客户端代码调用 `adapter.request()` 时,由于 `Adapter` 继承了 `Target`,因此它的 `request` 方法会被调用。`Adapter` 的 `request` 方法会调用 `Adaptee` 的 `specific_request` 方法,从而实现了 `Adaptee` 到 `Target` 的适配。