首页 > 其他分享 >设计模式06----桥接模式

设计模式06----桥接模式

时间:2024-05-22 15:54:42浏览次数:24  
标签:角色 桥接 模式 ---- 接口 抽象化 设计模式

桥接模式(Bridge Pattern)属于结构型设计模式,用于将一个大类或一系列紧密相关的类拆分为抽象和实现两个独立的层次结构,使得这两层能够独立地扩展。
桥接模式通常包含以下角色:

抽象化(Abstraction):定义抽象类的接口,维护对实现化对象的引用。
细化抽象(RefinedAbstraction):扩展抽象化角色,通常情况下,它不再是抽象类而是具体类。
实现化(Implementor):定义实现类的接口,这个接口不一定要与抽象化角色的接口完全一致,事实上这两个接口可以完全不同。
具体实现(ConcreteImplementor):实现实现化角色的接口,并定义它的具体实现。
桥接模式的一个典型例子是图形与颜色。图形是一个抽象的概念,它可以是圆形、矩形等;颜色也是一个抽象的概念,它可以是红色、蓝色等。图形和颜色可以独立地变化,桥接模式可以使得它们之间的耦合降到最低。

在实际的软件开发中,桥接模式适用于以下场景:

当一个类存在两个独立变化的维度,且这两个维度都需要进行扩展时。
当一个系统不希望使用继承或因为多层次继承导致系统类的个数急剧增加时。
当一个系统需要在构件的抽象化角色和具体化角色之间增加更多的灵活性时。






标签:角色,桥接,模式,----,接口,抽象化,设计模式
From: https://www.cnblogs.com/yaoweijun/p/18206430

相关文章

  • mac code google chrome cpu占用大 风扇就开始转
    打开活动监视器,查看 code这个是占用比较大的,处理下:1)删除不需要用的,如果有C++的,删除,暂时不用,或者用其它专业ide。2)配制:code--首选项--设置 1、search.followSymlinks:false,不勾选。2、CodeActionsOnSave,编辑  "git.enabled":false参考:https://blog.cs......
  • 微服务实践k8s&dapr开发部署实验(1)服务调用
    前置条件安装docker与dapr:手把手教你学Dapr-3.使用Dapr运行第一个.Net程序安装k8sdapr自托管模式运行新建一个webapi无权限项目launchSettings.json中applicationUrl端口改成5001,如下:"applicationUrl":"http://localhost:5001"//WeatherForecastController.......
  • golang微服务之go-zero零基础实战
    golang微服务之go-zero零基础实战1.环境准备mysql提供rpc服务接口后端交互存储etcd提供rpc服务注册与发现2.文件结构rpc服务接口:1.用户登录2.用户创建3.查询用户信息api服务接口:1.用户登录2.用户创建3.查询用户信息3.搭建步骤1.搭建rpc服务创建rpc......
  • c++ 语法摘记
    目录c++语法摘记c++获取当前时间的三种方式c++运算符优先级c++语法摘记c++获取当前时间的三种方式c++运算符优先级......
  • 技嘉主板设置U盘启动安装系统方法
    博主以H410MS2为例 开机后按F2键进入BIOS设置界面。 使用左右移动按键找到Boot选项。在Boot选项内找到CSMSupport栏位,将Disabled(关闭)选项改为Enabled(启用)如图所示。 在下面选项栏位找到OtherPCIdevices,将UEFI改为Legacy,按F10保存退出。 开机后按F12选择对应的U盘......
  • Product Quantization
    Background如何在数据海量的内容库中快速检索出Top-k的信息候选?缩小查找的范围,快速找到最有可能成为近邻的一个粗集合对Embedding向量做压缩,快速计算两个Embedding的距离。本实践内容的代码管理在Codes24/FlashCIM/文件夹下的pq_lib中VectorQuantization将一个向量空间中......
  • .NET 8 使用官方OpenXml SDK,替换Word中的文字和图片
    安装好DocumentFormat.OpenXml后,准备好一个docx文件usingDocumentFormat.OpenXml.Drawing.Wordprocessing;usingDocumentFormat.OpenXml.Packaging;usingDocumentFormat.OpenXml.Wordprocessing;usingSystem.Text.RegularExpressions;usingA=DocumentFormat.OpenXm......
  • 源代码管理工具——Github
    目录:Github简介1.Github基本功能2.Github文件的相关操作3.Github的创建与应用Github特点Github与TFS的区别一、Github简介GitHub是一个面向开源及私有软件项目的托管平台,因为只支持git作为唯一的版本库格式进行托管,故名GitHub。GitHub于2008年4月10日......
  • 无线充气泵pcba方案设计开发
    无线充气泵方案最开始是机械式的开发,后来慢慢地演变成由一个气缸、压力传感器和ADC芯片以及主控芯片,就能够使得打气筒具备智能充气功能,摇身一变变成无线充气泵方案。它具备精准压力检测以及过充过放等功能,利用ADC芯片和压力传感器的组合设计,可以感测到轮胎里面的气压从而驱使......
  • linux chrome + chromedriver
    目录linuxchrome+chromedriverchromechromedriverlinuxchrome+chromedriverchrome#下载wgethttps://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb#安装sudodpkg-igoogle-chrome-stable_current_amd64.deb#查看版本google-chrome--......