blent 2011-01-09 21:54 采纳率: 25%
浏览 265
已采纳

问一个web开发的基础性问题 关于结构分层的

我是刚开始学java web 开发,我看了很多项目,
很不明白为什么分这么多层.
例如一个项目采用struct 有:
1.实体类:
2 Action类:
3.DAO类
4service类。
5jsp.
请问为什么这样分啊,把这些都放在一块是个坏主意,可是我不能理解的是:service,我觉得省掉service会更简单些,
而且为什么DAO,service,真正起作用的类都要实现一个借口呢?使用它们的时候都是声明接口类,然后再注入它们,为什么不直接使用呢,
疑惑中。。。

  • 写回答

6条回答 默认 最新

  • jiangguangxian 2011-01-09 22:24
    关注

    这个问题很好解释,当初我也是不明白,但是后来遇到实际情况就明白了。DAO只负责数据库的操作接口。而service平常的时候只是和dao是类似的方法。那么service的真正含义是什么呢?

    讲的官方点,service就是做业务逻辑的,就普通点service对dao的数据进行一些处理。

    我们的jsp属于现实逻辑,把数据传入action,而action再好的结构中应该不会有太多的业务逻辑,而只是把数据直接转入service,而这些数据并不是我们数据库能直接存取的,怎么办,通过逻辑算法进行计算后者转换。这样jsp只负责显示,而action只负责跟view层的数据交换,而dao层只要根据特定表生成特定的增删改查接口。一些比较烦人的复杂的业务逻辑都放在service中了。

    你没有感觉到service重要,因为你根本就没有什么业务逻辑,你仅仅是把数据库的数据提取出来直接就能通过action传给页面,加入你提取的数据并不是你页面能够直接显示的呢?遇到的时候你可以再回头想这个问题。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(5条)

报告相同问题?

悬赏问题

  • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
  • ¥15 lammps拉伸应力应变曲线分析
  • ¥15 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛
  • ¥15 请问Lammps做复合材料拉伸模拟,应力应变曲线问题
  • ¥30 python代码,帮调试,帮帮忙吧
  • ¥15 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建