当前位置: 首页 > 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:

相关文章:

  • 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安全
  • 网站流量建设/深圳外贸网站建设
  • b s架构做的网站/无锡谷歌推广
  • 比业设计代做网站java/企业管理
  • 成人用品网站优化方法/谈谈对seo的理解
  • 网站升级建设方案/广东全网推广
  • 仿《砍柴》网站程序/友情链接交换网址大全