设计模式:适配器模式(C++实现)

适配器模式(Adapter Pattern)是一种结构设计模式,它允许将一个类的接口转换成客户端所期望的另一个接口。适配器模式通常用于连接两个不兼容的接口或类,使它们能够一起工作。

以下是一个简单的C++适配器模式的示例:

cpp 复制代码
#include <iostream>

// 目标接口
class Target
{
public:
    virtual void request() = 0;
};

// 需要适配的类
class Adaptee
{
public:
    void specificRequest()
    {
        std::cout << "Adaptee's specific request" << std::endl;
    }
};

// 适配器类
class Adapter : public Target
{
private:
    Adaptee *adaptee;

public:
    Adapter(Adaptee *adaptee) : adaptee(adaptee) {}
    void request() override
    {
        adaptee->specificRequest();
    }
};

int main()
{
    Adaptee *adaptee = new Adaptee();
    Target *adapter = new Adapter(adaptee);
    adapter->request();
    delete adaptee;
    delete adapter;
    return 0;
}

运行结果:

bash 复制代码
Adaptee's specific request

在上述示例中,Target是目标接口,定义了客户端所期望的接口。Adaptee是需要适配的类,其中包含了一个不兼容的方法specificRequest()。Adapter是适配器类,它继承了目标接口Target,并持有一个适配的对象Adaptee。在适配器类的request()方法中,调用了适配的对象的specificRequest()方法。

在main()函数中,创建了一个适配的对象adaptee和适配器对象adapter。通过将适配的对象传递给适配器的构造函数,将适配的对象转换为目标接口。最后,通过调用适配器的request()方法,实现了适配的对象的方法调用。

通过适配器模式,可以将一个类的接口转换成客户端所期望的另一个接口,使得原本不兼容的类能够一起工作。适配器模式可以提供代码复用和系统灵活性,同时也能够解决接口不兼容的问题。

相关推荐
王老师青少年编程37 分钟前
信奥赛C++提高组csp-s之搜索进阶(搜索剪枝核心思想 )
c++·dfs·csp·信奥赛·搜索剪枝·搜索优化
一拳一个呆瓜38 分钟前
【STL】使用 C++ 标准库标头
c++·stl
王老师青少年编程1 小时前
信奥赛C++提高组csp-s之搜索进阶(搜索剪枝案例实践2)
c++·信奥赛·csp-s·提高组·搜索剪枝·生日蛋糕·最优性剪枝
c++之路1 小时前
C++ 设计模式全总结
java·c++·设计模式
c238562 小时前
c/c++中的多态(上)
开发语言·c++
彷徨而立2 小时前
【C++】介绍 std::ifstream 输入文件流
开发语言·c++
MC皮蛋侠客2 小时前
C++17 多线程系列(十):多线程性能优化——从测量到调优
c++·多线程
程序大视界2 小时前
【C++ 从基础到项目实战】C++(六):拷贝控制——浅拷贝与深拷贝,兼谈智能指针
开发语言·c++·cpp
爱吃牛肉的大老虎3 小时前
Spring中用到的设计模式
java·spring·设计模式
代码中介商4 小时前
C++四大设计模式:单例、工厂、观察者、策略
java·c++·设计模式