恳请高手讲讲WEB开发中动作层与业务层的设计方法

moodoasis 2011-03-10 10:33:43
我用的最多的框架是struts,其中包括SSH和struts+webservice,但我发现,我总是把务业基本上全写到了,SQL里,对于ACTION作用,仅仅是从FORM中取来数据,传到SERVICE层。我感觉我的做法有问题,所以我想把务业放到ACTION里,可这让我更加困惑,我发现我根本分不清,务业和动作的区别,务业是什么呢,务业是动作的集合吗?,好像不是,因为动作是瞬时的,可ACTION类,本身就是动作啊,它应不应该算是务业层呢,我是百思不得其解啊,希望高手能指点迷经,先谢了
...全文
143 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
moodoasis 2011-03-22
  • 打赏
  • 举报
回复
最近开了一些关于模型驱动开发的东西,似乎理解了一点,可还是不太懂,我先结了,谢谢大家,可惜我还是没理解啊
luman2002 2011-03-21
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 moodoasis 的回复:]
sevice层一般都是无状态的啊,更像一个静态方法,确实ACTION和SERVICE很配,一个动作对应该一次静态函数的调用,是很爽,可是状态呢,又全部集中到了数据库中,结果写来写去,所有的设计仅仅是为了拼个SQL文,然后把结果显示成HTML,与其如此,我倒感觉,纯JSP+SQL最合适不过了,我的理解一定是错的啊,可错在哪呢,我实在不知啊
[/Quote]
我觉得楼主忽略了Spring的作用,SSH框架是秉着java中面向对象开发的思想而生的,Spring更是起到至关重要的作用。简单的说它就像一个秘书,管理对象(IOD)和事务管理(AOP)。
把业务处理放在Service层是为了能更好的进行事务管理,如果把业务层放到ACTION层,Spring就失去了它的意义,没有存在价值。
纯JSP+SQL则偏离了面向对象的思想。
呵呵 纯属个人理解
zn85600301 2011-03-21
  • 打赏
  • 举报
回复
action配发任务到 service,service通过调用不用的DAO完成任务,并返回相应结果给action

其实action和service有时候是比较难界定的
qm4050 2011-03-20
  • 打赏
  • 举报
回复
我的话一般是是用ssh,也就是一个web(显示层,也就是action什么的),biz(业务逻辑层,用spring将dao层的类注入到这一层),entity(实体层),dao(数据访问层,主要的是只数据的操作,但逻辑处理都放在biz层中)。如果项目很大的话就还有一个放接口的包
XiangZhiLiu 2011-03-11
  • 打赏
  • 举报
回复
可以这样理解:service是数据业务,可以包含数据库的多次操作!action是一个动作,就是完成某项任务而已,比如是增加,删除、修改某条数据,在service可以更新多个表的数据!二者都是业务的实现,如果正要分的话,我的理解是:service:数据逻辑、action:业务逻辑!
moodoasis 2011-03-11
  • 打赏
  • 举报
回复
我现在感觉,我是在为了适应框架在写代码,框架感觉不像工具了,我写的代码反而成工具了,现在CSDN,感觉和3年前没法比了,我这样的问题,已经没有人愿意回答了,再等一等吧
UPC_思念 2011-03-10
  • 打赏
  • 举报
回复
复杂的业务要分装到业务层,action一般只做页面跳转用,能少写就少些
ma309385560 2011-03-10
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 moodoasis 的回复:]
楼上的仁兄,按您这么说,我的做法是正确的了吗,务业就应该放在SERVICE中了吗,ACTION就是一个FACADE吗,从FACADE直接调用SERVICE,那业务层,在哪里呢,在SERVICE层里吗?
[/Quote]
对 业务层再service层拼装 action 负责与web交互 dao层与 数据库交互
moodoasis 2011-03-10
  • 打赏
  • 举报
回复
楼上的仁兄,按您这么说,我的做法是正确的了吗,务业就应该放在SERVICE中了吗,ACTION就是一个FACADE吗,从FACADE直接调用SERVICE,那业务层,在哪里呢,在SERVICE层里吗?
muboy1999 2011-03-10
  • 打赏
  • 举报
回复
既然是用到了struts,那action本来就是用来获取数据,进行最基本非业务性验证,并调用service操作返回结果。
muboy1999 2011-03-10
  • 打赏
  • 举报
回复
一般建议三层(action/controller、service、dao),但也有四层的(controller、action、service、dao)

通常情况下dao和sao是底层最基本的操作,主要针对数据和其它外部访问,最好是单一的动作。

service是针对一个整体业务上的动作,可以调用多个dao或者sao来实现,事物一般都上在这个上。

action或者controller主要实现控制层的东西,不做纯业务上的事。
moodoasis 2011-03-10
  • 打赏
  • 举报
回复
sevice层一般都是无状态的啊,更像一个静态方法,确实ACTION和SERVICE很配,一个动作对应该一次静态函数的调用,是很爽,可是状态呢,又全部集中到了数据库中,结果写来写去,所有的设计仅仅是为了拼个SQL文,然后把结果显示成HTML,与其如此,我倒感觉,纯JSP+SQL最合适不过了,我的理解一定是错的啊,可错在哪呢,我实在不知啊

67,515

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧