这个SSH结构,弄出一个业务层,目的就是那个,脱离action中杂糅dao的数据库操作代码,术语就是解耦合,上次看了一文章,说这结构似乎很少用那些设计模式,因为spring就充当了那工厂,也可以说是这本身就是一个设计模式吧,但是现在有个疑问,就是接口的问题,该如何设计,是基于DAO,还是基于业务?我看了那个轻量级企业应用,里面是基于DAO的,但SSH开发,DAO这一层都是自动生成的。难道还是一个一个添加上impelements (设计的接口),而那基本的改(增),删,查操作的方法名字,还要拷贝到接口里面,。  所以想听听大家的意见,大家都是怎么开发的?

解决方案 »

  1.   

    面向业务层的接口是一定需要的面向DAO的接口视项目大小和人手情况可自己选择啊,如果人手够,时间也多,最好也加上
      

  2.   

    设计模式的东西,不可不听,不可全听;
    按照设计模式的眼光而论,DAO模式就是个漏洞百出,耦合性高得吓人,设计奇差的模式;
    然后按照各种设计原则来写持久化层,本来dao算上接口才两个类,用上那些设计原则,要十个以上;
    举个简单的例子,首先,dao实现关系太紧耦合了,要分解成一个工厂,一个策略,然后通过单一原则要把每个方法设计成一个类,相当于一个类只做一个方法,然后还要设计出一个持久化层的祖接口,一个简单DAO的两个类,等你运用各种好模式进去,都十几个类了,工作成本和学习成本上根本划不来,不一定好的就是实用的嘛,呵呵,所以dao有他的优势,简单,易用,最重要的是谁都会!!!~
      

  3.   

    用spring时候DAO层最好自己去写,他生成的不怎么样....实话,工作了你就更不能用自动生成了......;
    代码的结构重要,但是你要理解他大的结构,代码的结构多着呢,但是万变不离其宗,写多了就知道;
    怎么样都是那一条路子;下个springde 的源代码包,他又示例程序,各个层分的还不错
      

  4.   

    面向业务层的接口是肯定需要的!Facade!设计模式!一般会用到SSH的项目一定都不小吧!所以最好做一个facade!
      

  5.   

    接口在SSH设计中非常重要,不仅是编程规范的问题,更重要的是程序对接,重复使用。interface 和 implement的修改和增删并不复杂,这样的改动基本上都是一次性的,和VIEW层的东西相比,这种改动简直频率太低了。虽然可以自动生成DAO,但还是建议自己写,本身也不是什么繁重的工作,自动生成的东西有时候不是那么好的。
      

  6.   

    难道还是一个一个添加上impelements (设计的接口),而那基本的改(增),删,查操作的方法名字,还要拷贝到接口里面,。
    没办法,设计阶段就是这么麻烦,如果LZ懒的写那些增删改查操作,多少有些办法还是能让你少写的,但不是不写恐怕不行,给你贴一个hibernate官方的通用DAO,希望对你有用http://www.hibernate.org/328.html里面的多用了JAVA的泛型,反射机制,如果LZ英语好可以看看