请教在ssh种哪里实现逻辑代码

08-01-11 15756404
请教banq老师,我们一个项目中正在使用SSH框架。

按照通常的规则,status负责做VIEW。。service负责调用hibernate的执行方法。

但我们现在的业务逻辑全部写在action当中。。而我觉得很不合理,action应该是servlet的子集做的应该只是mappingForword。

我这样想是不是对呢? 如果不对的话,请说明!~

banq
2008-01-11 17:36
>我们现在的业务逻辑全部写在action当中

完全错误,Action是作为前后台调度,是GOF模式中的Mediator,不能写入业务,否则哪来的业务层?直接耦合了界面和业务,如果将来不使用struts作为表现层,使用JSF或者Swing等胖客户端,那不是连业务逻辑一起要更换修改吗?这个和Delphi那样传统系统有什么区别。

这些都是由于没有OO思维导致的。

15756404
2008-01-14 16:08
那是不是不是应该

jsp->action->class->service->dao->db ?这样子的进进行方式

在action 中只写mappingForword?

banq
2008-01-15 18:00
差不多,但不只是这样,采取Evans DDD来设计分层是目前最合理的设计方案,具体可参考JiveJdon3源码。

wlmouse
2008-01-16 11:03
应该是

jsp->action->service->领域模型对象(业务处理)->持久化

同时要注意控制事务,确保事务控制在service层。一个service调用一次事务。

猜你喜欢
2Go 1 2 下一页