怎么看不出工厂方法的“具体产品角色”?

kiky2 2003-12-27 11:15:28
ResultSet rs = stmt.executeQuery(str)

ResultSet是一个接口
如果stmt.executeQuery(str)返回的应该是ResultSet的一个实现类,到底是什么类?

这时使用了工厂方法,“抽象产品角色”为resultset,但“具体产品角色”是什么?不可能是Resultset,它是接口。

...全文
25 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
lihao9806 2003-12-29
  • 打赏
  • 举报
回复
看看“接口隔离原则”和“依赖倒转原则”。
advanced 2003-12-28
  • 打赏
  • 举报
回复
不同的驱动有对ResultSet不用的实现类。
Hodex 2003-12-28
  • 打赏
  • 举报
回复
就是从加载驱动到执行任务啊
Fusuli 2003-12-28
  • 打赏
  • 举报
回复
你不知道具体产品是什么?谢天谢地,工厂方法的目的达到了
你只要知道返回的类的接口(即返回的类能干什么),而不需要知道它是什么
kiky2 2003-12-28
  • 打赏
  • 举报
回复
但是,你想知道的,是可以知道的。
只是client没有必要去知道。
kiky2 2003-12-28
  • 打赏
  • 举报
回复
谁知道jdbc实现的过程,即从Class.forName开始,最后到rst = stmt.execute();
得到具体类型是BaseResultSet,返回给ResultSet声明
jeffyan77 2003-12-28
  • 打赏
  • 举报
回复
有的时候你不知道具体产品角色是谁
hajavaor 2003-12-27
  • 打赏
  • 举报
回复
sql server 2000:
public class BaseStatement implements Statement, BaseFinalizable {
...

类似的,在相关jdbc jar中,找到BaseResult,这就是具体产品。
共同研究。
Schlemiel 2003-12-27
  • 打赏
  • 举报
回复
你把这个对象的class打印出来看看不就知道了吗?

50,545

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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