Java 高手请进。关于一个 接口类的问题。

QSmile 2004-08-27 10:26:15
在进行 JDBC 开发时。
数据集用 ResultSet .我也一直这样用。没有发现什么问题。

但今天有空。我就用 Eclipse 看java.sql 包里的内容。
我发现 ResultSet 只是一个 Interface .
我用 mysql 在 com.mysql.jdbc 下有一个 mysql 实现的 类 ResultSet 。

我就有个问题。那我们用的时候应该用 com.mysql.jdbc.ResultSet 才对呀。

后来我明白一点了。
我们用 ResultSet 只是用它的接口方法,而它的实例还是 com.mysql.jdbc.ResultSet
这个 ResultSet 是这样来的。
先用 DriverManager.getConnection();
实际上是得到了 com.mysql.jdbc.Connection;
再用 conn.createStatement(); 就得到了 com.mysql.jdbc.Statement;
最后用 stmt.executeQuery(); 就得到了 com.mysql.jdbc.ResultSet ;

这样的话那 DriverManager 就应于与一个类工厂了。

以上我的理解对不?高手指正!
...全文
168 13 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
passren 2004-08-29
  • 打赏
  • 举报
回复
正确
QSmile 2004-08-28
  • 打赏
  • 举报
回复
我也正在看设计模式方面的东东
会Java的蝈蝈 2004-08-28
  • 打赏
  • 举报
回复
确实应该是抽象工厂方法!
weimenren 2004-08-28
  • 打赏
  • 举报
回复
这个东西基础一点来说是属于面向对象的设计

在GoF的设计模式上就有说对接口编程而不是对实现编程

ResultSet定义了ResultSet的方法,只不过根据底层不同的实现,找对他的实现类

vitamines 2004-08-27
  • 打赏
  • 举报
回复
又加深了点认识
谢谢楼主!!
mashimaro24 2004-08-27
  • 打赏
  • 举报
回复
长见识了
zhang21cnboy 2004-08-27
  • 打赏
  • 举报
回复
呵呵,是的,你的理解正确。
QSmile 2004-08-27
  • 打赏
  • 举报
回复
等我再看看 DriverManager 的 代码了。
Geniusth 2004-08-27
  • 打赏
  • 举报
回复
嗯,接口就是定义user interface的,他限制了user能调用的方法,这样就可以隐藏实现的细节了,呵呵
alaal 2004-08-27
  • 打赏
  • 举报
回复
你理解的是对的,实现类 ResultSet 继承了 ResultSet 接口, 所以只需要引入java.sql 就可以了 stmt.executeQuery(); 就得到了 com.mysql.jdbc.ResultSet的实例~~然后引用的是ResultSet 接口中的方法~~~
snap2008cn 2004-08-27
  • 打赏
  • 举报
回复
基本上和我理解的差不多!
blasterboy 2004-08-27
  • 打赏
  • 举报
回复
嗯,基本上是这样的,用的是抽象工厂方法
Bluecatr 2004-08-27
  • 打赏
  • 举报
回复
兄弟研究的好深啊,帮你顶!!

67,550

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧