在J2EE的DAO层开发中,很多人爱写一个BaseDao接口,里面写上一个基本方法的声明,然后其他DAO类都实现该接口,使用的时候用 BaseDao dao = new UserDao();但是在具体的DAO类中,对数据的处理方法不尽相同,肯定有些DAO类没有该方法,有些DAO必需该方法,这是应该怎么办??如果在具体使用的时候 只是些 USerDao dao = new UserDao(),那接口的意义何在呢??对这些一直很不解,,求高人解答。

解决方案 »

  1.   

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

  2.   

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

  3.   


    BaseDao是接口,对于大部分DAO类里,肯定都会有 增删改查等基本的实现方法,但是肯定也会有其他的不统一的方法,那这么方法怎么办呢?
      

  4.   


    所有公共方法的集合,,但是具体调用某个实现类的时候还得ImplDao dao = new ImplDao();声明实现类自己的对象那接口有什么用呢?
      

  5.   

    个人觉得:接口有的时候只起到一个规范的作用,有的时候不用接口回调也是可以的,要灵活,向这种情况来说我就不用baseDao,如果一定要用的话,那只能UserDao dao = new UserDao();
      

  6.   

    一般:
    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得根本所在。
      

  7.   

    多個dao當然要有多個 接口了
    如果是硬要找到多個 Dao的共同集合,那就是crud了,其他的當然是根據需要來設計了,當然也要用到泛型
      

  8.   

    这个除非你做项目开发,不然你难以体会其中的玄妙。
    简单说 在SSH中,你用Spring 管理的时候,如果有接口,你只需要修改xml文件就可以更换实体的功能,比修改源代码好的多。
    设计模式原则,针对接口编程,避免针对实现编程。
      

  9.   

    继承接口 实现多态 具体项目中肯定多半是spring来控制 很方便的
      

  10.   

    不用new吧,通过接口注入吧,
    要new 也是 接口 对象 = new 实现类
      

  11.   

    繼承不是更好、繼承BaseDao就可以了 、想用裏面的東西就直接 super一下、、new一個的話 、對系統就多了點負荷、你new一個對象、那麼他就會在內存裏面開閉一些空間 、
    所以以後做項目最好少new