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 MCNP里如何定义多个源?
  • ¥20 双层网络上信息-疾病传播
  • ¥50 paddlepaddle pinn
  • ¥20 idea运行测试代码报错问题
  • ¥15 网络监控:网络故障告警通知
  • ¥15 django项目运行报编码错误
  • ¥15 请问这个是什么意思?
  • ¥15 STM32驱动继电器
  • ¥15 Windows server update services
  • ¥15 关于#c语言#的问题:我现在在做一个墨水屏设计,2.9英寸的小屏怎么换4.2英寸大屏