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

17.适配器模式(Adapter)

意图:将一个类的接口转换为Client希望的另一个接口,使得原本由于接口不兼容而不能一起工作的那些类在一起工作。

UML图

在这里插入图片描述

Target:定义Client使用的与特定领域相关的接口。
Client:与符合Target接口的对象协同工作。
Adaptee:定义一个已经存在的接口,这个接口需要适配。
Adapter:对Adaptee的接口与Target接口进行适配。

在这里插入图片描述

代码:

#include <iostream>
#include <list>
using namespace std;class Target{
public:virtual void Request(){cout << "Target:普通请求" << endl;}
};
class Adaptee{
public:void SpecificRequest(){cout << "Adaptee:特殊请求" << endl;}~Adaptee(){cout << "delete Adaptee" << endl;}
};class Adapter:public Target
{
public:Adaptee *adaptee;Adapter(){adaptee = new Adaptee();}void Request(){adaptee->SpecificRequest();}~Adapter(){cout << "delete Adapter" << endl;delete adaptee;}
};int main(void){Target *t1 = new Target();t1->Request();Target *t2 = new Adapter();t2->Request();return 0;
}

结果

Target:普通请求
Adaptee:特殊请求
http://www.lryc.cn/news/177580.html

相关文章:

  • leetcode做题笔记154. 寻找旋转排序数组中的最小值 II
  • 什么是推挽电路?
  • 208.Flink(三):窗口的使用,处理函数的使用
  • 时序预测 | MATLAB实现POA-CNN-BiLSTM鹈鹕算法优化卷积双向长短期记忆神经网络时间序列预测
  • 【知识点】增量学习、在线学习、离线学习的区别
  • c++ 学习 之 运算符重载 之 前置++和后置++
  • K8s Kubelet 垃圾回收机制
  • docker安装高斯数据库openGauss数据库
  • 新手学习:ArcGIS 提取SHP 路网数据、节点
  • 性能测试 —— Tomcat监控与调优:Jconsole监控
  • 刷题笔记26——图论二分图判定
  • 网站整站优化-网站整站优化工具
  • 冲刺十五届蓝桥杯P0001阶乘求和
  • c++ 学习 之 运算符重载
  • 各种数据库表名长度限制整理
  • Go 里的超时控制
  • 一文彻底搞清楚Spark Schema
  • Nginx多出口IP解决代理端口数量限制,CentOS安装Nginx并开启https2.0
  • SpringBoot项目(百度AI整合)——如何在Springboot中使用语音文件识别 ffmpeg的安装和使用
  • 探索古彝文AI识别技术:助力中国传统文化的传承与发扬
  • mysql面试题2:说一说MySQL的架构设计?一条 MySQL 语句执行的步骤?
  • UPnP协议和SSDP协议
  • notepad++配置python2环境
  • 在ThinkAdmin中弹出层关闭后回调
  • vue3 和vue2 的比较
  • 算法通过村第八关-树(深度优先)黄金笔记|寻找祖先
  • postgresql|数据库|数据库测试工具pgbench之使用
  • 代码随想录Day51 | 309.最佳买卖股票时机含冷冻期
  • libopenssl 实现私钥加密公钥解密
  • 代码随想录 Day - 51|#309 最佳买卖股票时机含冷冻期|#714 买卖股票的最佳时机含手续费