当前位置: 首页 > news >正文

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

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

#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;
}

运行结果:

Adaptee's specific request

在上述示例中,Target是目标接口,定义了客户端所期望的接口。Adaptee是需要适配的类,其中包含了一个不兼容的方法specificRequest()。Adapter是适配器类,它继承了目标接口Target,并持有一个适配的对象Adaptee。在适配器类的request()方法中,调用了适配的对象的specificRequest()方法。
在main()函数中,创建了一个适配的对象adaptee和适配器对象adapter。通过将适配的对象传递给适配器的构造函数,将适配的对象转换为目标接口。最后,通过调用适配器的request()方法,实现了适配的对象的方法调用。
通过适配器模式,可以将一个类的接口转换成客户端所期望的另一个接口,使得原本不兼容的类能够一起工作。适配器模式可以提供代码复用和系统灵活性,同时也能够解决接口不兼容的问题。

http://www.lryc.cn/news/170616.html

相关文章:

  • 【深度学习实验】前馈神经网络(二):使用PyTorch实现不同激活函数(logistic、tanh、relu、leaky_relu)
  • 容器技术所涉及Linux内核关键技术
  • IPV4和IPV6,公网IP和私有IP有什么区别?
  • 高云FPGA系列教程(7):ARM GPIO外部中断
  • Python爬虫:动态获取页面
  • 大数据平台迁移后yarn连接zookeeper 异常分析
  • Ubuntu Nginx 配置 SSL 证书
  • 将本地前端工程中的npm依赖上传到Nexus
  • 软考高级架构师下篇-16通信系统架构设计理论与实践
  • 国庆中秋特辑(二)浪漫祝福方式 使用生成对抗网络(GAN)生成具有节日氛围的画作
  • stm32 串口发送和接收
  • Vite + Vue3 实现前端项目工程化
  • Java动态代理Aop的好处
  • 各种存储性能瓶颈如何分析与优化?
  • Android StateFlow初探
  • Docker Compose初使用
  • 测试与FastAPI应用数据之间的差异
  • WebStorm 2023年下载、安装教程、亲测有效
  • k8s储存卷
  • 【解决Win】“ 无法打开某exe提示无法成功完成操作,因为文件包含病毒或潜在的垃圾软件“
  • SpringBoot调用ChatGPT-API实现智能对话
  • element-table出现错位解决方法
  • DC电源模块具有不同的安装方式和安全规范
  • zabbix自定义监控、钉钉、邮箱报警
  • 短信、邮箱验证码本地可以,部署到服务器接口却不能使用
  • Java web基础知识
  • 【Linux学习】01Linux初识与安装
  • android 将数据库中的 BLOB 对象动态加载为 XML,并设置到 Android Activity 的内容视图上
  • Android12之强弱智能指针sp/wp循环引用死锁问题(一百六十六)
  • springboot自定义Json序列化返回,实现自动转换字典值