论坛首页 Java企业应用论坛

关于 DAO 接口设计的思考

浏览 23940 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2006-10-13  
BirdGu 写道
public interface BaseDao<T> {
    public void create (T t);
    public void delete (T t);
    public void update (T t);
}

public interface WindDao extends BaseDao<Wind> {
    public void other (Wind wind);
}


对于设计二,我们一般都创建BaseDAO和WindDao如此之类的类,但是大部分诸如WindDao的类里都是没有方法的,因为BaseDAO里的方法基本上够用了,所以我们是否需要WindDao了,我看有一些项目中只有BaseDAO,没有WindDao,这样好吗
0 请登录后投票
   发表时间:2006-10-13  
yak2118 写道
BirdGu 写道
public interface BaseDao<T> {
    public void create (T t);
    public void delete (T t);
    public void update (T t);
}

public interface WindDao extends BaseDao<Wind> {
    public void other (Wind wind);
}


对于设计二,我们一般都创建BaseDAO和WindDao如此之类的类,但是大部分诸如WindDao的类里都是没有方法的,因为BaseDAO里的方法基本上够用了,所以我们是否需要WindDao了,我看有一些项目中只有BaseDAO,没有WindDao,这样好吗
这里说的都是接口吧?至于说到实现类嘛,这就要看具体的实现方法了。比如,如果使用Hibernate,那么所有实体类的create, delete , update方法基本都是一样的。这是一般Dao里不同的就是一些特殊的查询方法了。如果查询方法也没有的话,那Dao 就是空的了。也没什么不好啊。
0 请登录后投票
   发表时间:2006-10-14  
我们公司就是用反射,觉得还可以啦!
0 请登录后投票
   发表时间:2006-10-19  
受教了..以前没有用过..现在知道..这样用更好..
0 请登录后投票
   发表时间:2006-10-24  
可以参考springside项目DAO的设计,不错的
0 请登录后投票
   发表时间:2006-10-27  
我的不是jdk1.5,用的第二种方法
0 请登录后投票
   发表时间:2007-03-26  
看完各位大侠的思考小有收获,新手刚刚上路,在此谢过。
0 请登录后投票
   发表时间:2007-03-26  
真的不错 这方法好用
0 请登录后投票
   发表时间:2007-03-26  
BirdGu 写道
yak2118 写道
BirdGu 写道
public interface BaseDao<T> {
    public void create (T t);
    public void delete (T t);
    public void update (T t);
}

public interface WindDao extends BaseDao<Wind> {
    public void other (Wind wind);
}


对于设计二,我们一般都创建BaseDAO和WindDao如此之类的类,但是大部分诸如WindDao的类里都是没有方法的,因为BaseDAO里的方法基本上够用了,所以我们是否需要WindDao了,我看有一些项目中只有BaseDAO,没有WindDao,这样好吗
这里说的都是接口吧?至于说到实现类嘛,这就要看具体的实现方法了。比如,如果使用Hibernate,那么所有实体类的create, delete , update方法基本都是一样的。这是一般Dao里不同的就是一些特殊的查询方法了。如果查询方法也没有的话,那Dao 就是空的了。也没什么不好啊。

如果有一定要有DAO层的话,那空的DAO也没什么!其实可以将basedao注入baseservice来实现,这样就不用每个dao都写一个类了
0 请登录后投票
   发表时间:2007-04-22  
那个BaseDao<T> 中的T是不是可以是其他的字母啊 对范性不了解啊
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics