c++之桥接模式

C++结构型模式-桥接模式 使用C++实现桥接模式 阅读详情

桥接模式

定义:把抽象部分和它的实现部分分离,使得它们都可以独立的变化

栗子场景:华山派和崆峒派先后获得了武林秘籍辟邪剑谱和九阴真经,于是开始苦练此功..

UML类图

代码:

#include<iostream>

using namespace std;
class Sects;

//功夫
class Kungfu
{
public:
	virtual void practice() = 0;
};

//九阴真经
class JiuyinZj :public Kungfu
{
public:
	virtual void practice()
	{
		cout << "@九阴真经。注:玄门内功,至阴至柔" << endl;
	}
};

//辟邪剑谱
class PixieJp :public Kungfu
{
public:
	virtual void practice()
	{
		cout << "@辟邪剑谱,注:欲练此功,必先自宫" << endl;
	}
};


//门派 
class Sects{
public:
	Sects() :m_kungfu(nullptr){}

	void setMartialarts(Kungfu* m)
	{
		this->m_kungfu = m;
	}
	Kungfu* getKungfu()
	{
		return m_kungfu;
	}
	virtual void practice() = 0;
private:
	Kungfu *m_kungfu;	//桥接
};

//华山
class HuaShan :public Sects
{
public:
	void practice()
	{	
		getKungfu()->practice();
	}
};

//崆峒
class KongTong :public Sects
{
public:
	void practice()
	{
		getKungfu()->practice();
	}
};

//客户端
int main()
{
	Sects *sects = new HuaShan;
	cout << "华山派弟子正在练习:" << endl;
	sects->setMartialarts(new JiuyinZj);
	sects->practice();

	sects->setMartialarts(new PixieJp);
	sects->practice();

	sects = new KongTong;
	cout << "崆峒派弟子正在练习:" << endl;
	sects->setMartialarts(new JiuyinZj);
	sects->practice();

	sects->setMartialarts(new PixieJp);
	sects->practice();
	if (sects)
	{
		delete sects;
		sects = nullptr;
	}

	return 0;
}

效果:

c++实现桥接模式完整源代码 c++实现桥接模式完整源代码BridgePattern.hppmain.cpp BridgePattern.hpp #ifndef __BRIDGE_PATTERN_H__ #define __BRIDGE_PATTERN_H__ #include <iostream> #include <string.h> #include <mutex> using namespace std; // 实现类接口Implementor class Game { public: 阅读详情

相关推荐

C++ 桥接模式

桥接模式(Bridge Pattern)是将抽象部分与它的实现部分分离,使它们都可以独立地变化。

青春不老,奋斗不止! 9265

C++ 设计模式 —— 桥接模式

桥接模式的定义桥接模式的作用桥接模式,顾名思义,就像是一座连接两岸的桥梁。在软件开发中,我们可以将桥接模式看作是一座连接抽象部分和实现部分的“桥”,通过这座“桥”,我们可以方便地在抽象部分和实现部分之间进行切换,而不需要关心它们之间的实现细节。桥接模式的核心作用就是降低系统的耦合度,提高扩展性和可维护性。想象一下你正在修建一座连接两个城市的大桥,如果没有这座桥,你需要绕行很远的距离才能到达对岸。

莫寒技术人生 1066

C++设计模式之桥接模式(Bridge)

主要为大家详细介绍了C++设计模式之桥接模式Bridge,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

C++设计模式结构型模式———桥接模式

桥接(Bridge)模式也叫桥梁模式,简称桥模式,是一种结构型模式。该模式所解决的问题非常简单,即根据单一职责原则,在一个类中,不要做太多事,如果事情很多,尽量拆分到多个类中去,然后在一个类中包含指向另外一个类对象的指针,当需要执行另外一个类中的动作时,用指针直接去调用另外一个类的成员函数。

无敌岩雀的博客 2352

Habitat-v0.1.7安装全网最详细教程(解决habitat-sim下载时网络问题)

Habitat-v0.1.7安装全网最详细教程(解决habitat-sim下载时网络问题)

shannanshouyin的博客 1326

python DEA: 基于非径向距离NDDF的Malmquist-Luenberger 指数及其分解

点赞发Nature 关注中Science Malmquist-Lenberger指数(ML指数)是距离函数与DEA计算中常用的指数,ML指数可以进一步分解为技术进步technological progress和效率改善effeciency change. 技术进步常被当做增长模型中的全要素生产率,用到许多计量经济研究中,探讨影响技术进步的环境变量。这里我分享一个考虑非期望产出下的NDDF方法计算ML指数。 该ML指数为global ML(区别于sequential ML) import numpy as

Cmmmmm丶的博客 5295

C++ 设计模式——桥接模式

桥接模式是一种结构型设计模式,它将抽象部分与实现部分分离,使它们都可以独立地变化。这种模式通过组合的方式来代替继承,增加了系统的灵活性。

慢慢记录,慢慢更新。 2178

Xilinx实战-深入AXI UART Lite IP核的配置与调试

本文详细介绍了Xilinx FPGA中AXI UART Lite IP核的配置与调试方法,包括Vivado环境下的IP核设置、关键参数优化、寄存器操作及常见问题排查。通过实战案例和代码示例,帮助开发者快速掌握AXI接口的串口通信技术,提升嵌入式系统开发效率。

weixin_29189377的博客 227

桥接模式——C++实现

本文主要通过一个例子讲解了桥接模式的简单应用方法,并给出了C++的代码实现。

T_killer_的博客 673

实战!在 AMD RX 9070 XT (16G) 上使用原生 Windows ROCm 7.1 部署 ComfyUI + Z-Image-Turbo

本文详细介绍了如何在Windows系统下为AMD Radeon RX 9070 XT显卡配置Z-Image-Turbo AI绘图环境。主要内容包括:安装VS Build Tools和最新显卡驱动,配置Conda Python 3.12环境,安装ROCm 7.1.1 SDK及PyTorch适配版本,部署ComfyUI可视化界面。重点解决了AMD显卡在AI绘图中的适配问题,通过--use-split-cross-attention参数优化显存使用,最终成功搭建了可在消费级16G显存设备上运行的AI绘图环境

qq_33614778的博客 4680

clock min pulse width检查

高电平脉宽 = clock fall edge到达FF/CK的时间 - clock rise edge到达FF/CK的时间;低电平脉宽 = 下一T clock rise edge到达FF/CK的时间 - clock fall edge到达FF/CK的时间。而required pulse width是根据FF/CK处的transition,根据查找表计算得到的。为什么clock transition越大,会导致required pulse width越大呢?5、 降低clock上的串扰。

芯冰乐 577

C++ 桥接模式 (Bridge Pattern)

flyfish

二分掌柜的 1698

基于ZYNQ的HP总线与DDR交互:实现PL与PS高效数据传输的完整指南

本文将深入探讨如何通过AXI HP总线实现PL与PS的DDR交互,结合代码示例、硬件配置与创新优化,助力开发者掌握这一关键技术。ZYNQ内部通过AXI HP接口直接连接PL与DDR控制器,PL通过AXI协议发送读写请求,绕过PS的CPU直接操作DDR。通过AXI HP总线实现PL与PS的DDR交互,开发者可充分发挥ZYNQ异构架构的优势。在Xilinx ZYNQ系列芯片中,PS(Processing System)与PL(Programmable Logic)的协同设计是其核心优势。

QQ_778132974的博客 1223

C++设计模式——桥接模式(bridge pattern)

一、原理讲解 1.1意图 将抽象部分和实现部分分离,使它们可以独立的变化。(别名:handle/body) 1.2应用场景 当你不希望抽象和它的实现部分有一种紧密耦合关系,希望在运行时可以切换不同的实现; 类的抽象和实现都可以通过继承子类的方法进行扩充,这时可以选着桥接模式,运用组合方式分别对抽象和实现进行扩充; 当你像完全对客户隐藏抽象时,可以使用桥接模式;(继承时,抽象是可见的) 当你像抽象有多个扩展,实现也有多个方向扩展时使用。’ 1.3结构图(UML图) 桥接模式UML图 1.4

净无邪博客 2423

第七天 Labview进阶(7.3 Teststand简单使用)

TestStand是NI开发的自动化测试管理软件,支持多语言编程和硬件集成,广泛应用于电子产品和工业测试。安装时需注意版本选择,2022版支持离线安装。使用步骤包括:1)创建测试序列文件;2)插入测试动作并配置参数(如选择VI路径、设置变量);3)添加条件判断和延时控制;4)执行测试序列时具备流程控制功能,如失败步骤自动跳过后续测试。该软件能有效提升测试效率与准确性,通过可视化操作实现复杂测试流程管理。

weixin_38637405的博客 1728

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

C++设计模式——桥接模式(Bridge Pattern)

C++设计模式——桥接模式(Bridge Pattern) 微信公众号:幼儿园的学霸 目录 文章目录C++设计模式——桥接模式(Bridge Pattern)目录引言定义定义结构代码示例总结桥接模式和策略模式桥接模式和适配器模式适用场景优缺点参考资料 引言 假如有三个品牌的手机vivo,oppo和小米,如果手机手机壳一体生产,会是这样的: 对应到相应的类中,将是1+3+6=10个有继承关系的类,如果这时再加一个华为手机,无疑是要多增加3个类,会带来类的急剧增长。 如果手机手机壳分开生产,然后按需搭配,

leonardohaig的博客 1411

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

【c++设计模式10】结构型2:桥接模式(Bridge Pattern)

定义桥接模式(Bridge Pattern)定义了两个独立变化的维度,即抽象和实现,通过组合的方式将抽象部分和实现部分连接在一起,从而使得它们可以独立地进行扩展和变化。桥接模式通过将抽象部分的方法委派给实现部分,可以使得抽象部分和实现部分可以独立地进行演化。桥接模式通过组合而不是继承的方式实现了两个独立变化维度之间的解耦,提高了系统的灵活性。

junxuezheng的博客 1175

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

【C++】桥接模式

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

AAADiao的博客 1320

桥接模式(Bridge Pattern) C++

在游戏开发中,桥接模式可以用于分离游戏的图形渲染引擎(实现化角色)和游戏中的对象(抽象化角色),以便独立地管理和扩展它们。Bridge 模式的结构图中可以看到,系统被分为两个相对独立的部分,左边是抽象部分,右边是实现部分,这两个部分可以互相独立地进行修改。定义游戏中的抽象对象GameObject,它持有一个对渲染引擎的引用,以便于对象可以使用不同的渲染引擎进行渲染。现在,如果想要在游戏中使用不同的渲染引擎来渲染对象,只需要在创建游戏对象时传入不同的渲染引擎实例即可。实现化角色:渲染引擎接口。

yaoyaohyl的博客 1065

(二)结构型模式:2、桥接模式(Bridge Pattern)(C++实现示例)

介绍桥接模式的含义,应用场景,以及用C++实现的示例

bigger_belief的博客 1141

C++ 设计模式:桥接模式(Bridge Pattern)

C++ 设计模式:桥接模式(Bridge Pattern)

冀晓武的博客 678

c++桥接模式

c++桥接模式简介UML优点缺点代码 简介 这是这些设计模式里,理解上最费劲的模式了。 将抽象化(Abstraction)与实现化(Implementation)分离,使得二者可以独立地变化。 以前我们实现一个接口直接使用继承 就好了。桥接模式则是把继承关系转化成了 组合关系。实现 了 抽象 与 实现 分离。 UML 优点 1.将实现抽离出来,再实现抽象,使得对象的具体实现依赖于抽象,满足了依赖倒转原则。 2.将可以共享的变化部分,抽离出来,减少了代码的重复信息。 3.对象的具体实现可以更加灵活,可以满足

lvxu666的博客 569

C++桥接模式详解

/ 实现接口:定义颜色操作的抽象public:// C++11默认析构函数// 获取颜色名称// 抽象类:形状(持有颜色实现的引用)protected:// 桥接核心:通过指针聚合实现接口public:explicit Shape(Color* c) : color(c) {} // 构造时传入具体颜色// 绘制接口桥接关键:抽象类Shape不直接依赖具体颜色(如Red),而是通过Color接口间接调用,这种"抽象依赖抽象"的设计实现了解耦。// 扩展抽象类:圆形。

qq_40343899的博客 1080

C++ 设计模式之桥接模式

再举个例⼦,遥控器就是抽象接⼝,它具有开关电视的功能,修正抽象就是遥控器的实例,对遥控器的功能进⾏实现和扩展,⽽电视就是实现接⼝,具体品牌的电视机是具体实现,遥控器中包含⼀个对电视接⼝的引⽤,通过这种⽅式,遥控器和电视的实现被分离,我们可以创建多个遥控器,每个遥控器控制⼀个品牌的电视机,它们之间独⽴操作,不受电视品牌的影响,可以独⽴变化。,它的UML图很像⼀座桥,它通过将【抽象部分】与【实现部分】分离,使它们可以独⽴变化,从⽽达到。桥接模式的主要⽬的是通过组合建⽴两个类之间的联系,⽽不是继承的⽅式。

K1_uestc的博客 1613

[C++]桥接模式

桥接模式即将抽象部分与它的实现部分分离开来,使他们都可以独立变化。 桥接模式将继承关系转化成关联关系,它降低了类与类之间的耦合度,减少了系统中类的数量,也减少了代码量。 // 此文件包含 "main" 函数。程序执行将在此处开始并结束。 // // 参考大话设计模式 #include <iostream> using namespace std; class Implementor { public: virtual void Operation() = 0; }; cla

就是那个党伟 451
上一篇: c++之享元模式
下一篇: c++之命令模式
Qt上位机开发
Qt上位机开发 领域专家: C/C++技术领域 领域专家: C/C++技术领域
博客等级 码龄9年 9664粉丝 178原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值