针对SSH 架构 Aciton的定义问题

首页说说 我的Action 做法

由于开始业务比较简单 所以 我那个模块 建立了一个Aciton

Action对应了一个接口 接口有一个 实现类 都在spring里面注入了

但是 现在 业务增加了很多 变的复杂了 我建立的那个Action 相应的增加了很多方法

而每个方法 都由业务实现类去实现

问题就出来了 我现在的Action中 有1000多行代码 业务实现类 更有2000多行代码

我想减少代码 把业务 再细分清楚

请问 我该怎么分 一个模块 到底做多少个Action (比如说建立一个论坛模块)

[b]问题补充:[/b]
是不是 这样子

比如 论坛模块 它的显示方式很多 需要很多种查询方式

是不是可以把查询论坛 分离出来 做一个查询论坛的 ACTION

专门负责论坛查看的业务??
[b]问题补充:[/b]
回答dumbness :关于一个功能一个action、一个service

我也想过 可是 这样 我的action 可以分出20多个功能出来

这样会多 20多个action

好象 太多了吧

[b]问题补充:[/b]
其实 也就 是 在同一个action中实现CRUD多个操作方法的问题 这样引起的代码量过多 和代码逻辑混乱

但是 怎么分出来呢 如果分出修改 业务方法中修改有时候 也需要查询的 那这样可以吗
[b]问题补充:[/b]
针对于某个模块

一 。模块可以 分为4个Action 分别对应增删改查4种业务

只针对业务 不是增删改查的实际操作
比如 我一个修改的业务方法 可能需要先查询出来做个判断 再修改
(其中就包括了修改和查询)
每个Action 做为业务控制 管理一种业务(增加或查看或修改或删除)

二。 模块可以 做4个接口 分别对应 增删改查 (是增删改查的实际操作)

增加的接口中 不会出现查询的方法

最后 Action可以根据业务需求调用4种接口 来实现 业务逻辑 (调用4个因为 有些接口方法已经实现 所以就可以共用)
[b]问题补充:[/b]
Action 要调用业务逻辑类 那么 业务功能有重叠的情况

业务逻辑怎么划分呢 以前就写一个接口 就可以了 现在 Actrion 分多了

接口 也不好分

一个功能一个Action就行了,不要怕action的数量过多。

看你业务的复杂程度了再分模块嘛,一般不超过10个,5-10个适中

一个功能一个action、一个service不就结了嘛,清楚明了,以后维护也方便.代码全部放在一个action里谁也看不懂.

一般来说一个action中都会实现CRUD的操作,不然也不完整,模块化系统,那么每个单独的模块应该是一个完整体才合理,

这样引起的代码量过多 和代码逻辑混乱,这就要看你写代码是怎么写的,把相同的部分提取到超类里,继承的话,只要设计的好代码,不会有这个问题

20多个action还多?我做的项目有200多个action的,难道要全部写在一个action里

可以将业务逻辑给DAO来完成

你可以直接用springside的方式 server层和dao层合并成一个manager
然后根据你的功能模块 逐一划分,也就不会出现那么的代码
当然适当时候 还可以重构下的