实际java项目里,方法的返回是怎么封装的呢?

比如一个SSM框架的项目,dao层和service层的方法,输入参数和返回结果一般要不要封装成对象呢?

我之前都是用 Map<String, Object> 这种表示输入和输出的,感觉非常方便,但是在网上看到很多说这样不规范,要用面向对象的思维,封装 dto 什么的。。。。。

所以我现在也比较疑惑,到底怎样比较规范一点,合理一点?

阅读 8.2k
9 个回答

看业务需要和项目繁杂度,如果想用Map返回,必要时可以写好注释。一般都会结合两种方式使用

图片描述
我现在的项目,比如说dto是存放前端传过来数据的对象,vo是存放后台返回给前台的对象,modal是单纯的数据库表对应的对象,enums是软编码的存了一些常量

JAVA的话参数和返回值还是对象居多,但是其他格式比如map又或者其他字符串也是可以的,具体看逻辑和需求

新手上路,请多包涵

现在用的平台,返回对象统一为ReturnObject:
status:boolean,指示本次查询是否成功;
data:Map<String,Object>或List<Map<String,Object>>,数据;
datax:数据数目

没有绝对的规范,视项目规范和需求而定。

另外Map也是对象!,虽然大多数会用POJO来封装参数或封装结果。

用josnobject方便快捷

我是这样处理的

public class Result<T> {
    /**
     * 状态码.
     */
    private Integer code;
    /**
     * 提示信息
     */
    private String msg;
    /**
     * 具体内容
     */
    private T data;

    /**
     * @return the code
     */
    public Integer getCode() {
        return code;
    }

    /**
     * @param code
     *            the code to set
     */
    public void setCode(Integer code) {
        this.code = code;
    }

    /**
     * @return the msg
     */
    public String getMsg() {
        return msg;
    }

    /**
     * @param msg
     *            the msg to set
     */
    public void setMsg(String msg) {
        this.msg = msg;
    }

    /**
     * @return the data
     */
    public T getData() {
        return data;
    }

    /**
     * @param data
     *            the data to set
     */
    public void setData(T data) {
        this.data = data;
    }

}

感觉封装下会比较好,在返回结果上加个状态码可以省很多事.

对外系统的话,封装一个Response,里面有code,描述,结果。

系统内部的话,直接返回响应的对象,一般不会再用Response包一层。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题