大话设计模式之桥接模式

桥接模式是一种结构型设计模式,它将抽象部分与它的实现部分分离,使它们可以独立地变化。这种模式通过提供一个桥接接口来实现这种分离,使得抽象部分和实现部分可以在运行时独立地进行修改。

桥接模式主要由两个部分组成:抽象部分和实现部分。

  • 抽象部分(Abstraction):定义了抽象类或接口,并包含一个对实现部分的引用。
  • 实现部分(Implementor):定义了实现类或接口,与抽象部分相互配合,完成功能。
#include <iostream>// 实现部分接口
class Implementor {
public:virtual void operationImpl() const = 0;
};// 具体实现部分A
class ConcreteImplementorA : public Implementor {
public:void operationImpl() const override {std::cout << "Concrete Implementor A operation" << std::endl;}
};// 具体实现部分B
class ConcreteImplementorB : public Implementor {
public:void operationImpl() const override {std::cout << "Concrete Implementor B operation" << std::endl;}
};// 抽象部分
class Abstraction {
protected:Implementor* implementor_;public:Abstraction(Implementor* implementor) : implementor_(implementor) {}virtual void operation() const = 0;
};// 具体抽象部分
class RefinedAbstraction : public Abstraction {
public:RefinedAbstraction(Implementor* implementor) : Abstraction(implementor) {}void operation() const override {std::cout << "Refined Abstraction operation" << std::endl;implementor_->operationImpl();}
};int main() {// 创建具体实现部分对象ConcreteImplementorA implementorA;ConcreteImplementorB implementorB;// 使用不同的实现部分创建具体抽象部分对象RefinedAbstraction abstractionA(&implementorA);RefinedAbstraction abstractionB(&implementorB);// 调用抽象部分的操作方法abstractionA.operation();abstractionB.operation();return 0;
}/*
在这个示例中,Implementor 是实现部分的接口,定义了实现部分的操作方法。
ConcreteImplementorA 和 ConcreteImplementorB 是具体实现部分,
分别实现了 Implementor 接口。Abstraction 是抽象部分的接口,包含一个对实现部分的引用。
RefinedAbstraction 是具体抽象部分,实现了抽象部分的操作方法,并调用了实现部分的方法。在 main() 函数中,我们创建了具体的实现部分对象和抽象部分对象,并调用了抽象部分的操作方法,
实现了桥接模式的功能。
*/

觉得有帮助的话,打赏一下呗。。

           

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/615403.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ADB的基本语法及常用命令

学习网址 ADB命令的基本语法如下&#xff1a; adb [-d|-e|-s <serialNumber>] <command> 如果有多个设备/模拟器连接&#xff0c;则需要为命令指定目标设备。 参数及含义如下&#xff1a; 常用命令如下&#xff1a; 1. 启动ADB服务 adb start-server 2. 停止…

麦多馅饼开店流程及费用明细?

麦多馅饼作为一种深受人们喜爱的美食&#xff0c;在市场上拥有广泛的消费群体。近年来&#xff0c;越来越多的创业者将目光投向了麦多馅饼这一领域&#xff0c;希望通过加盟或自主经营的方式开设一家麦多馅饼店。本文将详细介绍麦多馅饼的开店流程以及相关的费用明细&#xff0…

单细胞RNA测序(scRNA-seq)cellranger count的细胞定量和aggr整合

单细胞RNA测序(scRNA-seq)基础知识可查看以下文章: 单细胞RNA测序(scRNA-seq)工作流程入门 单细胞RNA测序(scRNA-seq)细胞分离与扩增 单细胞RNA测序(scRNA-seq)SRA数据下载及fastq-dumq数据拆分 单细胞RNA测序(scRNA-seq)Cellranger流程入门和数据质控 细胞定量…

数据库(mysql)-连接嵌套查询-2

子查询 MySQL中的子查询&#xff08;Subquery&#xff09;是嵌套在其他SQL查询中的查询。子查询可以出现在SELECT、FROM或WHERE子句中&#xff0c;并用于返回将被用于外部查询的数据。子查询的结果可以是一个单一的值、一行、一列或多行多列的数据集。 单行单列查询 实例 #查…

弱口令入侵FE企业管理平台【附口令】

漏洞描述 飞企互联-FE企业运营管理平台 druid路径弱口令&#xff0c;攻击者可能通过尝试弱口令&#xff0c;非法进入系统&#xff0c;恶意操作或者收集信息进一步攻击利用。 漏洞复现 1、Fofa app"飞企互联-FE企业运营管理平台"2、零零信安 (html_banner360浏览…

基于ssm作业提交与查收系统论文

摘 要 现代经济快节奏发展以及不断完善升级的信息化技术&#xff0c;让传统数据信息的管理升级为软件存储&#xff0c;归纳&#xff0c;集中处理数据信息的管理方式。本作业提交与查收系统就是在这样的大环境下诞生&#xff0c;其可以帮助管理者在短时间内处理完毕庞大的数据信…

1.Spring的核心思想 —— IOC和DI

1. Spring是什么&#xff1f; 简单的说&#xff0c;Spring其实指的是Spring Framework&#xff08;Spring框架&#xff09;&#xff0c;是一个开源框架。 如果要用一句话概括&#xff1a;它是包含众多工具方法的IOC&#xff08;Inverse of Control控制反转&#xff09;容器。…

字节码文件的组成

字节码文件的组成 字节码文件的组成1 以正确的姿势打开文件2 字节码文件的组成2.1 基本信息2.2 常量池2.3 字段2.4 方法2.5 属性 3 字节码常用工具3.1 javap3.2 jclasslib插件3.3 Arthas 4 字节码常见指令 字节码文件的组成 1 以正确的姿势打开文件 字节码文件中保存了源代码…

RPA实战演练UiBot6.0新食堂一楼问卷星(类似于之前的网页表单提交)

要使用RPA&#xff08;Robotic Process Automation&#xff0c;机器人流程自动化&#xff09;帮助新食堂进行调查问卷&#xff0c;我们可以结合UiBot 6.0来实施具体的计划。以下是一个大致的实战演练计划&#xff1a; 一、目标与需求分析 明确调查目标&#xff1a;了解新食堂…

jdk17 你还想用ScriptEngineManager来执行js代码?

今天要用java来执行配置表的js代码&#xff0c;用 ScriptEngine javaScriptEngine new ScriptEngineManager().getEngineByName(“javascript”); 一直抛异常&#xff1a;Cannot invoke “javax.script.ScriptEngine.eval(String)” because “javaScriptEngine” is null 网上…

5.Hexo为页面标记标签和类别

Hexo的标签和类别基本上是可以在Hexo中将内容分组的两种方式 如果在网站上有一堆内容&#xff0c;有不同的博客文章 将博客文章分类为不同的类别会很有帮助 用特定的关键词为博客文章标记 如果可以同时分类和标记页面&#xff0c;会使网站用户更轻松地找到他们想要的页面类型 …

文章分享:《二代测序临床报告解读指引》

&#xff3b;摘要&#xff3d; 二代测序&#xff08;next generation sequencing&#xff0c;NGS&#xff09;已成为中国临床肿瘤医生常用检测工具&#xff0c;而中国超 90%临床医生需要 NGS 报告解读支持。因此&#xff0c;为提升临床医生 NGS 报告解读能力&#xff0c;特编写…