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

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

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

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

阅读 3.8k
评论
    9 个回答
    • 996

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

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

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

          • 2
          • 新人请关照

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

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

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

              用josnobject方便快捷

                • 89

                我是这样处理的

                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包一层。

                      撰写回答

                      登录后参与交流、获取后续更新提醒