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

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.kler.cn/a/545411.html

相关文章:

  • 如何在华为harmonyOS上调试软件
  • ollama实践笔记
  • 数据结构中的邻接矩阵
  • DeepSeek 本地部署指南
  • vscode使用常见问题处理合集
  • 【网络原理大花园】https 加密技术的深度解析,让你透彻理解, 建议收藏 ~ ~ ~
  • Fabric.js、leaferjs、pixi.js 库的对比分析
  • DeepSeek+Excel 效率翻倍
  • GPU并行计算的深度学习pyTorch环境搭建
  • chromadb向量数据库搭建和使用
  • 微信小程序 - 分包加载
  • IIC总线,也称为I²C或Inter-Integrated Circuit协议
  • 【AI论文】10亿参数大语言模型能超越405亿参数大语言模型吗?重新思考测试时计算最优缩放
  • 十分钟三步安装本地 DeepSeek大语言模型
  • Zabbix6.0使用自带模板(Docker by Zabbix agent 2)监控Docker
  • QT无弹窗运行和只允许运行一个exe
  • springboot020基于Java的免税商品优选购物商城
  • 零基础开发自己的微信小程序(工具箱之父)(二)
  • WPS或word接入智能AI
  • 机器翻译技术的演进与未来趋势:从规则到神经网络的革新