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

【C++】桥接模式

目录

  • 一、模式核心概念与结构
  • 二、C++ 实现示例:图形与颜色的桥接
  • 三、桥接模式与继承的对比
  • 四、应用场景
  • 五、C++ 实现注意事项
  • 六、桥接模式与其他设计模式的关系
  • 七、实战案例:跨平台 UI 组件
  • 八、优缺点分析
  • 九、C++ 标准库中的桥接模式应用
    • 如果这篇文章对你有所帮助,渴望获得你的一个点赞!

桥接模式(Bridge Pattern)是一种【结构型】设计模式,它将抽象部分与实现部分分离,使它们可以独立地变化。这种模式通过组合而非继承来实现解耦,特别适用于需要处理多个变化维度的复杂系统。

一、模式核心概念与结构

桥接模式包含四个核心角色:

  1. 抽象化(Abstraction):定义抽象接口,持有实现者的引用。
  2. 扩展抽象化(Refined Abstraction):继承自抽象化,扩展抽象接口。
  3. 实现者(Implementor):定义实现接口,供具体实现者实现。
  4. 具体实现者(Concrete Implementor):实现实现者接口的具体类。

桥接模式的关键在于通过组合关系将抽象与实现解耦,使两者可以独立变化。

二、C++ 实现示例:图形与颜色的桥接

以下是一个经典的桥接模式示例,演示如何分离图形(抽象)和颜色(实现)的变化维度:

#include <iostream>
#include <string>// 实现者接口:颜色
class Color 
{
public:virtual ~Color() {}virtual std::string fill() const = 0;
};// 具体实现者:红色
class Red : public Color 
{
public:std::string fill() const override {return "Red";}
};// 具体实现者:蓝色
class Blue : public Color 
{
public:std::string fill() const override {return "Blue";}
};// 抽象化:图形
class Shape 
{
protected:Color* color;  // 持有实现者的引用public:Shape(Color* c) : color(c) {}virtual ~Shape() {}virtual void draw() const = 0;
};// 扩展抽象化:圆形
class Circle : public Shape 
{
private:
http://www.dtcms.com/a/257655.html

相关文章:

  • Rust 的智能指针
  • mfc与vs成功在xp系统所需做的修改
  • 《游戏工业级CI/CD实战:Jenkins+Node.js自动化构建与本地网盘部署方案》
  • Dify 集成飞书文档API指南(图文教程)!
  • react 的过渡动画
  • Electron桌面程序初体验
  • 在910A上量化大语言模型问题记录
  • iperf3使用方法
  • 春秋云镜【CVE-2017-18349】fastjson wp
  • WebSocket快速入门
  • 北京他山科技:全球首款AI触觉感知芯片破局者
  • 异步IO框架io_uring实现TCP服务器
  • RISC-V h拓展
  • 使用nhdeep目录套打工具打印备考表
  • ELK 和 OpenShift 中的 EFK
  • c++中的set容器介绍及操作
  • 动,静态库
  • 智能生成分析报告系统在危化安全生产监测预警评估中的应用
  • 【麻省理工】《how to speaking》笔记
  • Kubernetes安全
  • 亚矩云手机赋能Vinted矩阵运营:破解二手电商多账号与本地化困局
  • idea 报错:java: 非法字符: ‘\ufeff‘
  • 回归任务与分类任务的区别
  • 合并table
  • Java后端与Vue前端项目部署全流程:从环境配置到Nginx反向代理
  • 【基础篇-消息队列】——详解 RocketMQ 和 Kafka 的消息模型
  • vue组件转html
  • qt常用控件--02
  • 互联网大数据求职面试:从Zookeeper到Flink的技术探讨
  • Docker 永久换源步骤