我简单解释下,希望能解决你的疑惑.
一个项目开始了,A负责1模块,B负责2模块,但是A、B两人都需要用到同一个类,项目紧张,不允许A完全开发好之后,再把这个公共类提供给B,所以呢要想一个办法。
办法就是,把这个公共类做成一个接口,也可以理解成你说的那个DAO,然后A在做的时候,只要implement DAO,B 也做他的implement DAO,这样又保证了2人之间同时进行项目开发,又保证了程序代码的入口唯一性。我这里也只是一个小例子说明,其中还有别的一些作用,就要靠自己摸索了

解决方案 »

  1.   


    假设有一个功能,简单点,是插入一条新数据,你可以定义一个接口,然后由一个DAO1实现了对sql server
    2000的一个表插入一条数据,但有一天,数据库变成了mysql,这怎么办呢,只要换一个DAO实现就可以了,对于
    业务层,那是不需要动的,只改实现这部分就可以了。这也是一个优点
      

  2.   

    1. dao层封装了持久化操作细节,业务层引用dao接口,这样就隐藏了dao的实现细节。2. dao层一般封装了对单个对象的持久化操作细节,但不作为一个事务原子。在业务层,一个业务方法可能涉及到多个对象的持久化操作,同时一个业务方法才是一个事务原子。通过声明式事务定义,可以对业务层定义事务。
      

  3.   

    反过来说,我直接写实现,而不用接口,其实也不是很过分吧?如果这样的话,你的同事完成了那部分,你怎么办? 你全部修改你的代码吗? 因为你的同事写的程序和你不一样啊!还有,你同时每天都修改更新好多次,难道每次都要传给你,你才能测试你的程序如果他正好某个你需要的功能,他没有完成,你怎么办? 你敢直接修改他的代码? 那就造成了CVS冲突了!