C++ 设计模式-适配器模式

适配器模式示例,包括多电压支持、类适配器实现、安全校验等功能:

#include <iostream>
#include <memory>
#include <stdexcept>// 抽象目标接口:通用电源接口
class PowerOutlet {
public:virtual ~PowerOutlet() = default;virtual int outputPower() const = 0;virtual std::string plugType() const = 0;
};// 具体目标接口1:中国标准USB插座 (期望5V)
class ChinaUSBSocket : public PowerOutlet {
public:int outputPower() const override { return 5; }std::string plugType() const override { return "USB-A"; }
};// 具体目标接口2:欧洲标准插座 (期望12V)
class EuropeSocket : public PowerOutlet {
public:int outputPower() const override { return 12; }std::string plugType() const override { return "Europlug"; }
};// 被适配类集合---------------------------------
class ChineseWallOutlet {  // 中国标准220V
public:int output220V() const { return 220; }std::string shape() const { return "Flat 3-pin"; }
};class AmericanOutlet {  // 美国标准110V
public

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/69660.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Java八股文】02-Java集合面试篇

【Java八股文】02-Java集合面试篇 概念数组与集合区别常用集合Java中的线程安全的集合是什么&#xff1f;Collections和Collection的区别 Listjava中list的几种实现把ArrayList变成线程安全的有哪些方法&#xff1f;CopyOnWriteArrayList是如何保证线程安全的&#xff1f; Mapj…

tenda路由器WriteFacMac存在远程命令执行漏洞(CVE-2024-10697)

一、漏洞简介 tenda路由器WriteFacMac存在远程命令执行漏洞 二、漏洞影响 tenda路由器三、网络测绘&#xff1a; fofa: title"Tenda | LOGIN"四、复现过程 POC 1 GET /goform/WriteFacMac?macls%20%3E/webroot/1.txt HTTP/1.1 Accept: text/html,application/…

C语言中字符与字符串的区别?

在 C 语言中&#xff0c;字符&#xff08;Character&#xff09;和字符串&#xff08;String&#xff09;是两个不同的概念&#xff0c;它们在定义、存储、操作等方面都存在明显的区别&#xff0c;下面为你详细介绍&#xff1a; 定义与表示 字符 &#xff08;1&#xff09;字…

mapbox进阶,添加绘图扩展插件,裁剪线

👨‍⚕️ 主页: gis分享者 👨‍⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍⚕️ 收录于专栏:mapbox 从入门到精通 文章目录 一、🍀前言1.1 ☘️mapboxgl.Map 地图对象1.2 ☘️mapboxgl.Map style属性1.3 ☘️MapboxDraw 绘图控件二、🍀添加绘图扩…

react redux用法学习

参考资料&#xff1a; https://www.bilibili.com/video/BV1ZB4y1Z7o8 https://cn.redux.js.org/tutorials/essentials/part-5-async-logic AI工具&#xff1a;deepseek&#xff0c;通义灵码 第一天 安装相关依赖&#xff1a; 使用redux的中间件&#xff1a; npm i react-redu…

crontab制定任务计划删除超过5天以上的文件

文章目录 1.find命令的基本用法2.编写脚本3.制定任务计划4.制定任务计划后一定要重启一下crontab服务1.find命令的基本用法 #查询/data/docker/overlay2/目录下的host.access.log文件 find /data/docker/overlay2/ -path */log/nginx/host.access.log -print #删除/root/da…

有哪些免费的SEO软件优化工具

随着2025年互联网的不断发展&#xff0c;越来越多的企业意识到在数字营销中&#xff0c;网站的曝光度和排名至关重要。无论是想要提高品牌知名度&#xff0c;还是想要通过在线销售增加收益&#xff0c;SEO&#xff08;搜索引擎优化&#xff09;都是一项不可忽视的关键策略。而要…

SpringBoot速成(九)获取用户信息 P9-P10

1.代码展示 P9 07&#xff1a;09&#xff1a;如何让Authorization直接保存 UserController: //获取用户信息GetMapping("/userInfo")public Result<User> userInfo(RequestHeader(name"Authorization") String token){//根据token得到usernameMap…

纪念日倒数日项目的实现-【纪念时刻-时光集】

纪念日/倒数日项目的实现## 一个练手的小项目&#xff0c;uniappnodemysql七牛云。 在如今快节奏的生活里&#xff0c;大家都忙忙碌碌&#xff0c;那些具有特殊意义的日子一不小心就容易被遗忘。今天&#xff0c;想给各位分享一个“纪念日”项目。 【纪念时刻-时光集】 一…

蓝桥杯备赛 Day13.1走出迷宫

链接&#xff1a;走出迷宫 题目描述 小明现在在玩一个游戏&#xff0c;游戏来到了教学关卡&#xff0c;迷宫是一个N*M的矩阵。 小明的起点在地图中用“S”来表示&#xff0c;终点用“E”来表示&#xff0c;障碍物用“#”来表示&#xff0c;空地用“.”来表示。 障碍物不能通…

ubuntu系统借助windows系统代理实现上网的做法

作者&#xff1a;朱金灿 来源&#xff1a;clever101的专栏 目前有这样一个场景&#xff1a;ubuntu系统装在一个嵌入式设备上&#xff0c;嵌入式设备只有一个网口&#xff0c;现在你手头有一台装有windows10系统的笔记本电脑&#xff0c;可以通过手机开热点来让笔记本电脑来上网…

deepseek的CoT优势、两阶段训练的有效性学习笔记

文章目录 1 DeepSeek的CoT思维链的优势1.2 open-r1的CoT训练数据1.3 ReAct任务与CoT任务适用场景 2 AI推理方向&#xff1a;deepseek与deepmind的两条路线的差异2.1 PRM与ORM的两大学派分支的差异2.2 DeepSeek-R1的两阶段训练概述 1 DeepSeek的CoT思维链的优势 DeepSeek跟之前…

BeginInvoke和Invoke的使用时机

在 WinForms 中&#xff0c;Control.BeginInvoke 和 Control.Invoke 都用于在 UI 线程上执行代码&#xff0c;但它们的核心区别在于 阻塞行为 和 线程调度方式。以下是 BeginInvoke 相比 Invoke 的主要优势&#xff1a; 1. 非阻塞调用 Invoke&#xff08;同步调用&#xff09;&…

大语言模型实践——基于现有API的二次开发

基于现有的API平台做一些实用的AI小应用。 API服务商&#xff1a;阿里云百炼 云服务器&#xff1a;阿里云&#xff08;2核2GB&#xff09; 部署框架&#xff1a;gradio 调用框架&#xff1a;openai 语言&#xff1a;Python &#xff08;注&#xff1a;若搭建网站或API接口…

STM32 RTC 实时时钟说明

目录 背景 RTC(实时时钟)和后备寄存器 32.768HZ 如何产生1S定时 RTC配置程序 第一次上电RTC配置 第1步、启用备用寄存器外设时钟和PWR外设时钟 第2步、使能RTC和备份寄存器访问 第3步、备份寄存器初始化 第4步、开启LSE 第5步、等待LSE启动后稳定状态 第6步、配置LSE为…

Prometheus监控系列 | blackbox_exporter配置实战

Prometheus监控系列 | blackbox_exporter配置实战 1. blackbox简介2. blackbox_exporter部署2.1. 下载安装包2.2. 配置启动文件3. blackbox_exporter配置文件详解3.1. HTTP监控3.2. TCP监控3.3. ICMP监控4. 监控域名SSL证书的到期时间5. 配置Prometheus配置文件6. Grafana监控展…

Node.js 中实现多任务下载的并发控制策略

1、背景与需求 在实际开发中&#xff0c;我们常常需要从多个源下载文件&#xff0c;例如从多个服务器下载图片、视频或音频文件。如果不加以控制&#xff0c;同时发起过多的下载任务可能会导致服务器过载&#xff0c;甚至引发网络拥堵。因此&#xff0c;合理控制并发数量是实现…

HTML应用指南:利用POST请求获取接入比亚迪业态的充电桩位置信息

在新能源汽车快速发展的今天,充电桩的分布和可用性成为了影响用户体验的关键因素之一。比亚迪作为全球领先的新能源汽车制造商,不仅在车辆制造方面取得了卓越成就,也在充电基础设施建设上投入了大量资源。为了帮助用户更方便地找到比亚迪充电桩的位置,本篇文章,我们将探究…

【经验分享】Linux 系统安装后内核参数优化

在 Linux 系统安装后&#xff0c;进行内核优化有助于提升系统的性能、稳定性和安全性。以下是一些常见的内核优化操作&#xff1a; 修改/etc/sysctl.conf 文件 执行sysctl -p使配置生效。 kernel.shmmax 135185569792 kernel.shmall 4294967296 fs.aio-max-nr 3145728 fs.fi…

【2024 CSDN博客之星】技术洞察类:从DeepSeek-V3的成功,看MoE混合专家网络对深度学习算法领域的影响(MoE代码级实战)

目录 一、引言 1.1 本篇文章侧重点 1.2 技术洞察—MoE&#xff08;Mixture-of-Experts&#xff0c;混合专家网络&#xff09; 二、MoE&#xff08;Mixture-of-Experts&#xff0c;混合专家网络&#xff09; 2.1 技术原理 2.2 技术优缺点 2.3 业务代码实践 2.3.1 业务场…