赞
踩
适配器模式(Adapter Pattern)是一种结构型设计模式,用于在不修改现有类的情况下使其与其他类兼容。适配器模式通过创建一个新的适配器类,将一个类的接口转换为另一个类所期望的接口,从而使原本接口不兼容的类能够协同工作。适配器模式有两种形式:类适配器(使用多重继承)和对象适配器(使用组合)。
适配器模式通常包含以下角色:
#include <iostream> // 目标接口 class Target { public: virtual ~Target() = default; virtual void request() const = 0; }; // 待适配类 class Adaptee { public: void specificRequest() const { std::cout << "Adaptee's specific request." << std::endl; } }; // 适配器 class Adapter : public Target { public: Adapter(Adaptee* adaptee) : adaptee_(adaptee) {} void request() const override { adaptee_->specificRequest(); } private: Adaptee* adaptee_; }; int main() { Adaptee* adaptee = new Adaptee(); Target* adapter = new Adapter(adaptee); adapter->request(); delete adapter; delete adaptee; return 0; }
在这个例子中,我们首先定义了一个目标接口 Target,它包含一个名为 request() 的方法。然后,我们创建了一个待适配类 Adaptee,它提供了一个名为 specificRequest() 的方法。我们希望将 Adaptee 类的 specificRequest() 方法适配为 Target 类的 request() 方法。
为此,我们创建了一个适配器类 Adapter,它继承自 Target 类并实现了 request() 方法。在 Adapter 类的 request() 方法中,我们调用了 Adaptee 类的 specificRequest() 方法。这样,通过 Adapter 类,我们可以将 Adaptee 类的 specificRequest() 方法适配为 Target 类的 request() 方法。
在 main 函数中,我们首先创建了一个 Adaptee 对象和一个 Adapter 对象。然后,我们通过 Adapter 对象调用了 request() 方法,实际上调用的是 Adaptee 对象的 specificRequest() 方法。这样,我们成功地将 Adaptee 类适配为了 Target 类。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。