在SSH开发中,假设场景为登录。登录需要做的事情如下:
1、获得Auth授权对象2、查看数据库的sys_auth表是否有该auth对象对应的数据,没有就INSERT一个。3、判断上下文中是否有授权对象,没有则存一个。4、调用远程服务,根据用户AUTH对象获得该用户订购的服务列表,并判断出用户订购产品的级别。5、把用户订购级别和用户名存入SESSION。
现在有两种设计,我不知道哪种是对的。
设计一:
以上5个步骤都写在一个Service的一个login方法中,如果步骤2异常,则3、4、5都不执行了,感觉好处是这些步骤都是一个业务的整体,当成了一个事务在执行。
但这样就导致service层的login方法参数列表是login(ServletContext application,HttpSession session),感觉把service层给耦合了J2EE的API。
try {
步骤1
步骤2
步骤3
步骤4
步骤5
} catch (Exception e) {
    e.printStackTrace();
}
设计二:
以上1、2、4写成一个Service类中的3个不同的方法,都在UserAction当中分别调用它们,而3、5就直接在ACTION里面编程。这样感觉上这些都很零散,不像一个整体。请问大家平常的设计当中,ACTION的一个方法里面,是调用多个SERVICE方法呢,还是只调用一个?
上面哪种更合适????