JDBC使用了哪种设计模式

本文分析了JDK中数据库操作接口如何被不同数据库厂商实现,指出JDBC接口与具体实现如MySQL和Oracle的关系符合桥接模式,强调从设计模式视角理解接口与实现分离的重要性。

JDK中提供了操作数据库的接口,比如

java.sql.Driver

java.sql.Connection

java.sql.Statement

java.sql.PreparedStatement

不同的数据库厂商提供操作自己数据库的驱动包,

比如mysql 

public class Driver extends NonRegisteringDriver implements java.sql.Driver
public interface JdbcConnection extends java.sql.Connection, MysqlConnection, TransactionEventHandler 
public interface JdbcStatement extends java.sql.Statement, Query

比如oracle

public class OracleDriver implements java.sql.Driver
public interface OracleConnection extends java.sql.Connection
public interface OracleStatement extends java.sql.Statement

可以看到,不论是mysql 还是 oracle,都对 JDBC接口进行了实现。

难道是属于策略模式?看一下策略模式类图(图解设计模式),好像是挺像的

不过还有一种模式,叫桥接模式(图解设计模式)

GOF对桥接模式的意图解释:

将抽象部分与它的实现部分分离,使它们都可以独立地变化 

GOF对策略模式的意图解释:

定义一系列的算法,把它们一个个封装起来, 并且使它们可相互替换。本模式使得算法可独
立于使用它的客户而变化

看下下面的图:

所以,可以将JDBC中定义的接口看成是 抽象部分,而mysql 、oracle看成是具体的实现,这种将抽象和实现分开,就是桥接模式的定义啊。所以,不能只关注 实际的接口类或者实现类之间的关系,应该从宏观上来看他们之间的关系,因此,JDBC就是使用了桥接模式。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值