java的web架构讨论【散分,来者有分】
说明:系统使用了Structs2、hibernate3、spring3框架,使用了基本的三层架构,即:Dao层、Service层、Action层
一、关于Dao层
顾名思义,Dao数据操纵对象,封装了访问数据库的操作,在service层只需调用它提供的接口就可以实现数据库的操纵,无论使用下面的哪种方法都可以屏蔽数据库的信息(无论它是oracle、sqlserver、mysql、db2)
1、有的系统只使用一个Dao对象,即CommonDao对象,把所有的数据库操作都放在该对象中,这样做确实不要写太多的Dao接口和实现类,请经验丰富者说明该种设计的利和弊(包括后期维护的利和弊)。
2、有的系统使用N个Dao接口和DaoImpl,基本上做到了一张表一个Dao,这样有些Dao操作是通用的,可是却在Dao中重复了N遍,感觉挺麻烦,请经验丰富者说明该种设计的利和弊(包括后期维护的利和弊)。
二、关于Service层
service对象,即:业务处理对象,其封装的是业务处理逻辑,action层只需要访问其提供的接口就行了,这样action代码很简洁,在这里我有一个疑问,就是service层有必要实现面向接口编程吗?请经验丰富者说明该种设计的利和弊(包括后期维护的利和弊)。
请大家踊跃发言,各抒己见,来者有分