首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么JDBC是桥设计模式的典型应用?

为什么JDBC是桥设计模式的典型应用?
EN

Stack Overflow用户
提问于 2017-09-14 21:21:00
回答 2查看 1.6K关注 0票数 4

我从很多资源中发现,JDBC是桥设计模式的一个典型例子。但他们通常不告诉细节,所以我想知道细节。根据我的理解:

  • Driver接口是DriverManager和具体JDBC驱动程序类之间的桥梁。
  • Connection接口是Driver和具体JDBC连接类之间的桥梁。
  • Statement接口是Connection和具体SQL语句类之间的桥梁。
  • ResultSet接口是Statement和自负结果集类之间的桥梁。

如果我的陈述是错误的,请修改。另外,我猜DataSource接口也是一座桥,但我不知道它是哪一种类之间的桥梁。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-09-14 21:54:22

由“四人帮”定义的桥型意味着将抽象与其实现脱钩,以便两者可以独立地变化。在这种情况下,与其说是把不同的类连接在一起。相反,该模式说明了接口(JDBC )保持不变的开放/封闭原则,但是可以添加和替换新的实现(JDBC驱动程序)。

这意味着使用JDBC的数据访问代码只需要依赖于API接口,如ConnectionStatementResultSet,而不是关心应用程序连接到的实际数据库系统。JDBC将将应用程序连接到应用程序部署到的环境中使用的数据库。因此,您可以对不同的RDBMS运行相同的代码(使用JDBC抽象),并且只需要更改JDBC驱动程序(实现)。

由RUI添加:http://www.informit.com/articles/article.aspx?p=29302

票数 3
EN

Stack Overflow用户

发布于 2017-09-15 00:17:35

事实并非如此。

Bridge模式需要一个API的具体实现,该API映射到另一个API的具体实现。它很少被使用:事实上,自从20+书出版以来,我在GoF年里就使用过它一次,我对那次事件感到遗憾。

JDBC提供了API (接口)的抽象定义,这些API (接口)是由同一API的具体实现实现的,而后者则负责网络操作,而不是调用不同的API。

但是,Type 2 JDBC驱动程序在内部将是Bridge模式的一个示例。在这个架构中,Java层与JNI层对话,JNI层可能已经存在并由供应商提供了不同的C API。这个架构是过渡性的,我怀疑你现在能找到一个例子。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46228420

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档