设计模式-JDBC中的桥接模式

news2025/1/21 12:59:39

一、首先看整个brige模式的结构图。如下:

Abstraction — 抽象化角色:

定义抽象的接口,包含一个对实现化角色的引用

Refined Abstraciotn — 扩展抽象化角色:

抽象化角色的子类,实现父类中的业务方法,并通过组合/聚合关系调用实现化角色中的业务方法

Implementor — 实现化角色:

定义具体行为、具体特征的应用接口,供扩展抽象化角色使用

ConcreteImplemetor — 具体实现化角色:

实现化角色的具体实现

(结构部分的说明,复制自: jdbc桥接mysql_JDBC之桥接模式_梁培定的博客-CSDN博客)

二、光说理论是说不清楚的。直接上jdbc的成功示例

虽然没有结构上没有Abstraciotn这一块,但事实上做到了桥接模式的几个核心优点,

1,将接口和实现分离。

我们获取数据库连接的时候,调用的是DriverManager.getConnection但具体实现却是注册进来的实现Driver来实现的。

2,提高了可扩展性。

任何新来一个数据库,调用方的代码都不用变,只需要具体的数据库驱动类实现connection的方法,并将这个取动类引入进来即可。

3,对客户端隐藏了实现的细节。

调用端,也完全不用了解具体驱动类的实现细节。

结语:满足了这三点模式的核心优点,虽然drivermanager没有上层接口,但是也认为是桥接模式的成功示例。

(我看到好多成功示例,也都不是完全照搬设计模式的结构,包括spring也是用的简单工厂模式而不是用的工厂方法模式,builder模式在一些开源代码上的应用更是被精简得厉害,只保留了精髓)

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

录屏专家怎么用?录屏软件使用教程(附下载)

想要更好地录制电脑屏幕可以使用电脑录屏专家,但有很多人在安装录屏专家之后,不知道如何使用。录屏专家怎么用?怎样使用录屏专家录制电脑屏幕?下面小编给您分享录屏软件使用的教程(附安装教程),…

RabbitMQ实战:性能和安全

本系列是「RabbitMQ实战:高效部署分布式消息队列」书籍的总结笔记。 前两篇介绍了RabbitMQ在可用性、监控方面的考虑,这是基础保障,因为在某些场景下是不容许丢失消息的,但它和性能往往是对立的,需要根据业务场景做取舍…

JSP SSM众包网站系统myeclipse开发mysql数据库springMVC模式java编程计算机网页设计

一、源码特点 JSP SSM众包网站系统 是一套完善的系统源码,对理解JSP java SrpingMVC mybiats 框架 MVC编程开发语言有帮助,系统具有完整的源代码和数据库,以及相应配套的设计文档,系统主要采用B/S模式开发。 研究的基本内容…

JUC并发编程学习笔记——CAS个人理解

1. CAS引出 1.1 悲观锁 顾名思义,就是比较悲观的锁,总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会阻塞直到它拿到锁(共享资源每次只…

什么是 HTTP?

什么是 HTTP? 超文本传输协议 (HTTP) 是万维网的基础,用于通过超文本链接加载网页。HTTP 是应用程序层协议,旨在在联网设备之间传输信息,并在网络协议栈的其他层之上运行。HTTP 上的典型流涉及客户端计算机向服务器发出请求&…

2023CUPT第十四题 射流的折射 思路与解法

文章未完首先声明一点,这个题我还没想好最后的答案,欢迎交流(备注:博主今年不参加CUPT 博主去做电子设计大赛了!有电赛谁还玩CUPT啊)声明2:博主没有学过流体力学所以。。声明3:博主的…

[oeasy]python0045_转化为10进制数_int_integrate_integer_entire_整数

转化为10进制 回忆上次内容 上这次总结了四种进制 函数名对应单词进制类型数字事例前缀bin()binary20b11000010boct()octal80o1410ohex()hexadecimal160x610x?decimal1097无 十进制数 可以转化 为 其他进制 的 字符串状态 那反过来 其他进制形态的字符串 可以转化回 10进制…

Qt 自带标题处理方法思路

目录 需求 相关方法也有两种 1.只需要继承QAbstractNativeEventFilter类,从写放nativeEventFilter,并调用安装函数installNativeEventFilter 2.第二种是Qt提供的继承QWidget 重写bool nativeEvent(const QByteArray &eventType, void *message, …

RocketMQ事务消息原理简析

零、业务场景 在项目中,经常遇到这样一个场景,需要保证数据持久化和消息发送要么同时成功,要么同时失败。比如当用户在交易系统下了一个订单,购物车需要消费订单消息清除加购数据、积分系统需要变更用户积分、短信平台需要给买家…

如何选择显示检波器

之所以介绍频谱仪的显示检波器,是因为在宽带信号功率测试、功率谱密度测试及相噪测试等应用中,对显示检波器的选择有一定的要求。如果选择的检波器不合适,那么将无法准确完成测试。本文的目的也是想让初学者对这一块内容有更多的认识&#xf…

新手运营适合哪个跨境电商平台

很多企业的网站被收录却没有排名,关键词优化不上去,网站也没有什么流量,不断更新文章,即使是原创,也排不上去,这究竟是由于哪些原因造成的呢?米贸搜作为专业的SEO平台,整理了以下几种…

茶叶为啥那么贵?

60000个嫩芽才制作一斤好茶 茶叶采摘成本太高 如何通过机器人采茶? 趣讲大白话:茶叶贵是有道理滴 *********** 浙江理工大学智能采茶机器人 能自主识别茶树芽叶 控制机械臂进行精准采摘 芽叶识别准确率能达到82%左右 平均采摘速度2.5秒/颗 采摘成功率达…

【NI Multisim 14.0原理图的设计——简单电路设计】

目录 🥝🥝序言 🍍1.使用菜单命令 🍍2.右键快捷命令 🍍3. 使用快捷键 🥝🥝一、放置导线 🍍1.自动连线 🍍2. 手动连线 🍍 3.设置导线的属性 &#x1f3…

单目ADAS系列教程-相机基础篇

文章目录前言相机相关的4大坐标系像素坐标系与图像坐标系的转换图像坐标系与相机坐标系的转换相机坐标系与世界坐标系的转换相机畸变标定方法小结前言 PS:本文仅讨论针孔模型相机,其余类型相机并不涉及! 相机基础包括相机内参,相…

(1)WireShark

1.工具简介(1)定义WireShark是一个网络封包分析软件。网络封包分析软件的功能是抓取网络封包,并尽可能显示出最为详细的网络封包资料。使用WinPACA作为接口,直接与网卡进行数据报文交换。(2)嗅探器工作原理收集:从网络线缆上收集原始二进制数…

Redis客户端命令基础操作二

目录 Redis中五种常用的结构: 字符串:String 字符串可以存储三种类型的值:字节串、整数、浮点数 列表:List Redis中五种常用的结构: 字符串(string)、列表(list)、集合(set)、散列(hash)、有序集合(zset)客户端基础命令操作 字…

Java项目:旅游网站管理系统设计和实现(java+springboot+jsp+mysql+spring)

源码获取:博客首页 "资源" 里下载! 运行环境: java jdk 1.8 IDE环境: IDEA tomcat环境: Tomcat 7.x,8.x,9.x版本均可 主要功能说明: 管理员角色包含以下功能:管理员登录,用户管理,旅游路线管…

集装箱号识别率99.98%+实时返回结果高泛化,全球领先飞瞳引擎集装箱识别检测云服务全球三千企业用户,集装箱信息识别铅封识别免费

飞瞳引擎™AI集装箱识别检测云服务全球三千企业使用,顶尖AI科技集装箱号识别率99.98%以上高泛化性高鲁棒性,可二次开发或小程序拍照使用,集装箱号铅封号识别API免费实时返回结果。CIMCAI是全球规模领先应用范围领先,核心技术领先的…

帆软数据决策平台连接SAP RFC实例

一、介绍由于SAP ABAP开发出来的报表很单一,形式很有限,而且调整报表格式和形式都显得特别的鸡肋,所以现在将SAP系统通过RFC接口模式接入到帆软报表数据决策平台下展示。本文将详细介绍如何将数据从SAP传输到帆软平台上。二、准备工作首先得先…

色氨酸代谢与肠内外健康稳态

谷禾健康 色氨酸(Tryptophan,简称 Try)是人体必需氨基酸,也是唯一含有吲哚结构的氨基酸,由食物尤其膳食蛋白质提供,是正常细胞稳态所必需的,是维持细胞生长和协调机体对环境和饮食线索的反应&am…