15.桥接模式

简介: 1桥接模式的核心内容是: A:定义好抽象的接口类。 B:对于不同的情况不同实现。但是实现是要求和模板的定义的相同。 2桥接模式的作用:说白了就是定义类模板,然后实现。 3桥接模式具体描述 //桥接模式:将抽象化与实现化脱耦,使得二者可以独立的变化 //也就是说将他们之间的强关联变成弱关联 //也就是指在一个软件系统的抽象化和实现化之间使用组合
 1桥接模式的核心内容是:

A:定义好抽象的接口类。

B:对于不同的情况不同实现。但是实现是要求和模板的定义的相同。

2桥接模式的作用:说白了就是定义类模板,然后实现。

3桥接模式具体描述

//桥接模式:将抽象化与实现化脱耦,使得二者可以独立的变化

//也就是说将他们之间的强关联变成弱关联

//也就是指在一个软件系统的抽象化和实现化之间使用组合

 

//聚合关系而不是继承关系,从而使两者可以独立的变化。

 

//早上碰到MM,要说早上好,晚上碰到MM,要说晚上好。

//碰到MM穿了新衣服,要说你的衣服好漂亮哦,碰到MM做新的发型,要说

//你的头发好漂亮哦。不要问我"早上碰到MM新做了个发型怎么说"

//这种问题,自己用GRIDGE组好一下不就行了。

4桥接模式类图

5.代码:

#include<iostream>

#include<string>

usingnamespacestd;

//桥接模式:将抽象化与实现化脱耦,使得二者可以独立的变化

//也就是说将他们之间的强关联变成弱关联

//也就是指在一个软件系统的抽象化和实现化之间使用组合

 

//聚合关系而不是继承关系,从而使两者可以独立的变化。

 

//早上碰到MM,要说早上好,晚上碰到MM,要说晚上好。

//碰到MM穿了新衣服,要说你的衣服好漂亮哦,碰到MM做新的发型,要说

//你的头发好漂亮哦。不要问我"早上碰到MM新做了个发型怎么说"

//这种问题,自己用GRIDGE组好一下不就行了。

 

classHandsetSoft

{

public:

   virtualvoidrun() = 0;

};

 

classHandsetGame :publicHandsetSoft

{

public:

   voidrun()

   {

       cout <<"运行手机游戏" << endl;

   }

};

 

classHandsetAddressList :publicHandsetSoft

{

public:

   voidrun()

   {

       cout <<"运行手机通讯录" << endl;

   }

};

 

classHandsetBrand

{

protected:

   HandsetSoft *soft;

public:

   voidsetHandsetSoft(HandsetSoft *soft)

   {

       this->soft = soft;

   }

   virtualvoidrun() = 0;

};

 

classHandsetBrandN :publicHandsetBrand

{

public:

   voidrun()

   {

       soft->run();

   }

};

 

classHandsetBrandM :publicHandsetBrand

{

public:

   voidrun()

   {

       soft->run();

   }

};

 

intmain()

{

   HandsetBrand *hb;

   hb =newHandsetBrandM();

 

   hb->setHandsetSoft(newHandsetGame());

   hb->run();

   hb->setHandsetSoft(newHandsetAddressList());

   hb->run();

 

   cin.get();

   return 0;

}

 

运行结果如下:


目录
相关文章
|
5月前
|
人工智能 边缘计算 自然语言处理
|
5月前
|
数据处理 数据安全/隐私保护 Python
拼多多付款截图生成器,拼多多购买记录截图生成器,拼多多订单制作工具虚拟
这段代码实现了一个完整的拼多多订单生成工具,包含订单生成、数据处理和导出功能。主模块
|
4月前
|
消息中间件 存储 数据采集
Apache InLong:构建10万亿级数据管道的全场景集成框架
Apache InLong(应龙)是一站式、全场景海量数据集成框架,支持数据接入、同步与订阅,具备自动、安全、可靠和高性能的数据传输能力。源自腾讯大数据团队,现为 Apache 顶级项目,广泛应用于广告、支付、社交等多个领域,助力企业构建高效数据分析与应用体系。
|
5月前
|
安全 Linux 虚拟化
macOS Ventura 13.7.7 (22H722) 正式版 ISO、IPSW、PKG 下载
macOS Ventura 13.7.7 (22H722) 正式版 ISO、IPSW、PKG 下载
407 0
|
缓存 前端开发 JavaScript
Webpack与Babel的进阶配置与优化
通过以上的进阶配置和优化策略,可以更好地发挥`Webpack`与`Babel`的功能,提高项目的性能和开发效率。
|
8月前
|
人工智能 Java 物联网
没有好的学历,Java开发未来的路应该怎么走?
在数字化时代,Java开发者即使没有高学历,也能通过拥抱新兴技术(如大模型应用与鸿蒙系统开发)、积累实战经验、持续学习新技能等途径实现职业突破。从参与开源项目到关注行业动态,再到规划技术专家或管理路线,建立人脉网络并利用教育平台提升能力,开发者可拓宽技术边界,适应日新月异的技术需求,在未来发展中占据一席之地。
|
10月前
|
小程序
【01】微信支付商户申请下户到配置完整流程-微信商户申请-资料准备以及提交-微信商户密钥申请-申请+配置完整流程-优雅草卓伊凡
【01】微信支付商户申请下户到配置完整流程-微信商户申请-资料准备以及提交-微信商户密钥申请-申请+配置完整流程-优雅草卓伊凡
282 2
【01】微信支付商户申请下户到配置完整流程-微信商户申请-资料准备以及提交-微信商户密钥申请-申请+配置完整流程-优雅草卓伊凡
|
10月前
|
机器学习/深度学习 人工智能 自然语言处理
JoyGen:用音频生成3D说话人脸视频,快速生成逼真的唇部同步视频
JoyGen 是京东和香港大学联合推出的音频驱动的3D说话人脸视频生成框架,支持多语言、高质量视觉效果和精确的唇部与音频同步。
583 14
JoyGen:用音频生成3D说话人脸视频,快速生成逼真的唇部同步视频
|
数据可视化 数据挖掘 UED
Plotly交互式数据可视化
【10月更文挑战第12天】本文介绍了如何使用 Plotly 实现交互式数据可视化,涵盖从安装 Plotly 到数据准备、图表创建、添加交互功能、导出图表及自定义图表样式的全过程。通过具体示例,展示了如何创建和优化交互式折线图,提升数据分析的效率和趣味性。
529 60
|
人工智能 JavaScript Java
智慧联动,码上新篇:通义灵码助力超级个体崛起之旅
笔者入驻阿里云已有段时间,同时亦是通义灵码的忠实用户,自从AI Coding助手刚问世时便一直在默默关注着国产AI的变化与升级,而通义灵码是为数不多面向个人用户免费且高效的AI编码助手。其背后是庞大的阿里集团,其中蕴藏的庞大技术力可想而知。 对于我们个人程序员而言,无论是学生、打工人,亦或是教授、科研人员,有这样一个国产良心的AI助手是不可多得的事情。带领国产AI助手走向全面AI时代,成为开发者手中一把真正的利剑,攻坚克难,向今天所喊出的口号一样,助力开发者“超级个体”的崛起,引领科技走向新征程。 十年问剑两茫茫,君子砥砺前行路!
402 2
智慧联动,码上新篇:通义灵码助力超级个体崛起之旅