构造返回结果的在哪儿构造比较好呢?

这是我service层的代码

 @Override public Response checkUserTokenlong uid, String accessToken, String deviceToken{ Response response = new Response; //TODO 先到session中找 try { UserLogin userLogin = userLoginDao.getUserLoginByUiduid; ifuserLogin != null { ifuserLogin.getStatus == -1{ response.setRcRc.RC_USER_STATUS; response.setErrMsg"账号存在风险,已暂时锁定"; }else ifaccessToken == userLogin.getAccessToken && deviceToken == userLogin.getDeviceToken{ //验证正确, 返回新的accessToken String newAccessToken = regenerateAccessTokenuid; String sql = "UPDATE " + DEFAULT_TABLE_NAME + " SET " + "accessToken=" + newAccessToken + "," + "online=1"; userLoginDao.executeUpdatesql; response.setRcRc.RC_SUCCESS; response.setDatanewAccessToken; }else{ response.setRcRc.RC_USER_ACCESS_ERROR; response.setErrMsg"验证失败,请重新登陆"; } }else{ response.setRcRc.RC_USER_INVALID; response.setErrMsg"不合法用户请求"; } }catch Exception e{ Yin.logErrore, getClass; response.setRcRc.RC_DB_ERROR; response.setErrMsg"数据库异常"; } return response; }

我想请问下,

  1. 这是service层,这里的Response 对象,应该在这里构造吗? 还是应该放到action层去?
    我觉得放在这里不妥的原因是, 一个action方法里可能调用多个service层的业务逻辑方法,肯定不能每个service的方法里都构造一个Response, 这样action方法里都没办法处理了.但是如果放到action层去, 就如这里的service方法, 这里的众多返回情况,我应该怎么反馈到action层去, 再构造一个对象吗?

我想你的模式是:

action -> service -> dao

其实你为了保证action简单只做Controller, service之间也要互相独立,其实action和service中间还可以再加入一层, 比如叫biz,于是就变成

action -> biz -> services -> daos

所以,Servcie是应该有他的返回结果的,action只是把返回结果返回给客户端罢。 为了整合多个service的结果, 可以引入biz,当然,biz也有他的返回结果,这个返回结果就是最终客户端拿到的原型。

为什么不可以呢?
利用泛型 Response<T> 就好啦

还有人吗。谈谈各位的经验

发表评论

电子邮件地址不会被公开。 必填项已用*标注