J2EE开发中DAO层,关于DAO接口的使用的不解

lzkkevin 2012-03-08 11:03:31
在J2EE的DAO层开发中,很多人爱写一个BaseDao接口,里面写上一个基本方法的声明,然后其他DAO类都实现该接口,使用的时候用 BaseDao dao = new UserDao();

但是在具体的DAO类中,对数据的处理方法不尽相同,肯定有些DAO类没有该方法,有些DAO必需该方法,这是应该怎么办??

如果在具体使用的时候 只是些 USerDao dao = new UserDao(),那接口的意义何在呢??

对这些一直很不解,,求高人解答。。。。
...全文
313 16 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
mrzhangasmile 2012-10-16
  • 打赏
  • 举报
回复
繼承不是更好、繼承BaseDao就可以了 、想用裏面的東西就直接 super一下、、new一個的話 、對系統就多了點負荷、你new一個對象、那麼他就會在內存裏面開閉一些空間 、
所以以後做項目最好少new
wyx100 2012-03-08
  • 打赏
  • 举报
回复
接口有的时候只起到一个规范的作用,有的时候不用接口回调也是可以的,要灵活
ilovefzq 2012-03-08
  • 打赏
  • 举报
回复
个人觉得:接口有的时候只起到一个规范的作用,有的时候不用接口回调也是可以的,要灵活,向这种情况来说我就不用baseDao,如果一定要用的话,那只能UserDao dao = new UserDao();
lzkkevin 2012-03-08
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 moonscope 的回复:]

就是dao层里面的接口(不是接口的实现类),所有公共的方法的集合了呗!
[/Quote]

所有公共方法的集合,,但是具体调用某个实现类的时候还得

ImplDao dao = new ImplDao();声明实现类自己的对象

那接口有什么用呢?
lzkkevin 2012-03-08
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 sweat89 的回复:]

这就是多态,接口的作用吧。。
如果你到后面还需要一个XxDAO ,里面需要BaseDao的方法,,你该怎么写?
[/Quote]

BaseDao是接口,对于大部分DAO类里,肯定都会有 增删改查等基本的实现方法,但是肯定也会有其他的不统一的方法,那这么方法怎么办呢?
时光荒羽 2012-03-08
  • 打赏
  • 举报
回复
就是dao层里面的接口(不是接口的实现类),所有公共的方法的集合了呗!
sweat89 2012-03-08
  • 打赏
  • 举报
回复
这就是多态,接口的作用吧。。
如果你到后面还需要一个XxDAO ,里面需要BaseDao的方法,,你该怎么写?
lzkkevin 2012-03-08
  • 打赏
  • 举报
回复
求各位大大帮忙解答,小弟在线等。。。。多谢
dxqrr 2012-03-08
  • 打赏
  • 举报
回复
接口,灵活的基石
zuxianghuang 2012-03-08
  • 打赏
  • 举报
回复
不用new吧,通过接口注入吧,
要new 也是 接口 对象 = new 实现类
hello_ljfbest 2012-03-08
  • 打赏
  • 举报
回复
工厂模式,spring中有用……
billlllyove 2012-03-08
  • 打赏
  • 举报
回复
继承接口 实现多态 具体项目中肯定多半是spring来控制 很方便的
LucEaspe 2012-03-08
  • 打赏
  • 举报
回复
这个除非你做项目开发,不然你难以体会其中的玄妙。
简单说 在SSH中,你用Spring 管理的时候,如果有接口,你只需要修改xml文件就可以更换实体的功能,比修改源代码好的多。
设计模式原则,针对接口编程,避免针对实现编程。
小V小V志 2012-03-08
  • 打赏
  • 举报
回复
多個dao當然要有多個 接口了
如果是硬要找到多個 Dao的共同集合,那就是crud了,其他的當然是根據需要來設計了,當然也要用到泛型
yixiaogang109 2012-03-08
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 iisgirl 的回复:]
一般:
1、public interface BaseDAO 裏面寫公用得crud,注意,返回對象不是具體得某個bean,給成Object。
2、public abstract class BaseDAOImpl implements BaseDAO 給出BaseDAOImpl,實現BaseDAO裏面的方法。
3、public class UserDAOImpl extends BaseDA……
[/Quote]
同意
昨日凡阳 2012-03-08
  • 打赏
  • 举报
回复
一般:
1、public interface BaseDAO 裏面寫公用得crud,注意,返回對象不是具體得某個bean,給成Object。
2、public abstract class BaseDAOImpl implements BaseDAO 給出BaseDAOImpl,實現BaseDAO裏面的方法。
3、public class UserDAOImpl extends BaseDAOImpl implements CRInfoDAO

CRInfoDAO寫你自己獨有的方法。
這也是為什麽要設置BaseDAO得根本所在。

67,549

社区成员

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

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