适配器模式是一种结构型设计模式,用于将一个类的接口转换成客户端所期望的另一个接口。这种模式通常用于系统需要与现有接口不兼容的类协同工作的情况。适配器模式允许这些不兼容的接口协同工作,使得客户端代码无需修改就能够使用这些类。

适配器模式包含以下主要角色:

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/设计模式