我从很多资源中发现,JDBC是桥设计模式的一个典型例子。但他们通常不告诉细节,所以我想知道细节。根据我的理解:
Driver接口是DriverManager和具体JDBC驱动程序类之间的桥梁。Connection接口是Driver和具体JDBC连接类之间的桥梁。Statement接口是Connection和具体SQL语句类之间的桥梁。ResultSet接口是Statement和自负结果集类之间的桥梁。如果我的陈述是错误的,请修改。另外,我猜DataSource接口也是一座桥,但我不知道它是哪一种类之间的桥梁。
发布于 2017-09-14 21:54:22
由“四人帮”定义的桥型意味着将抽象与其实现脱钩,以便两者可以独立地变化。在这种情况下,与其说是把不同的类连接在一起。相反,该模式说明了接口(JDBC )保持不变的开放/封闭原则,但是可以添加和替换新的实现(JDBC驱动程序)。
这意味着使用JDBC的数据访问代码只需要依赖于API接口,如Connection、Statement或ResultSet,而不是关心应用程序连接到的实际数据库系统。JDBC将将应用程序连接到应用程序部署到的环境中使用的数据库。因此,您可以对不同的RDBMS运行相同的代码(使用JDBC抽象),并且只需要更改JDBC驱动程序(实现)。
由RUI添加:http://www.informit.com/articles/article.aspx?p=29302
发布于 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。这个架构是过渡性的,我怀疑你现在能找到一个例子。
https://stackoverflow.com/questions/46228420
复制相似问题