适配器模式包含以下主要角色:
1. 目标接口(Target): 客户端期望的接口,适配器会实现这个接口,以便客户端可以调用它。
2. 适配器类(Adapter): 实现了目标接口并持有一个被适配对象的引用。适配器类将客户端的请求转发给被适配对象。
3. 被适配对象(Adaptee): 需要被适配的类,它有一个不符合目标接口的接口。
下面是一个简单的适配器模式的例子:
# 目标接口
class Target:
def request(self):
pass
# 被适配对象
class Adaptee:
def specific_request(self):
print("Adaptee's specific request")
# 适配器类
class Adapter(Target):
def __init__(self, adaptee):
self._adaptee = adaptee
def request(self):
# 调用被适配对象的方法
self._adaptee.specific_request()
# 客户端代码
if __name__ == "__main__":
# 创建被适配对象
adaptee = Adaptee()
# 创建适配器并将被适配对象传递给它
adapter = Adapter(adaptee)
# 客户端通过目标接口调用适配器的方法
adapter.request()
在上述示例中,Target 是目标接口,Adaptee 是被适配对象,它有一个名为 specific_request 的方法。Adapter 类实现了 Target 接口,并在其内部持有一个 Adaptee 的实例。当客户端通过 Target 接口调用 Adapter 的 request 方法时,实际上是调用了被适配对象 Adaptee 的 specific_request 方法。
适配器模式使得原本不兼容的类可以协同工作,同时也降低了客户端代码的耦合度。这种模式在系统需要整合已存在的类时非常有用。
转载请注明出处:http://www.zyzy.cn/article/detail/11843/设计模式