美文网首页
结果类-R的设计

结果类-R的设计

作者: 石头耳东 | 来源:发表于2022-04-14 20:31 被阅读0次

    零、本文纲要

    • 一、属性(字段)设计
      1、属性确定
      2、属性选择
    • 二、方法设计
      1、方法确定
      2、方法选择
    • 三、结果类R

    一、属性(字段)设计

    1、属性确定

    code:状态码,0失败,1成功;
    msg:错误信息;
    data:数据;
    map:动态数据。

    private Integer code; //编码:1成功,0和其它数字为失败
    
    private String msg; //错误信息
    
    private T data; //数据
    
    private Map map = new HashMap(); //动态数据
    

    2、属性选择

    • ① 为什么msg是错误信息?

    一般成功的情形会返回对应数据,而且无具体数据返回的情形下,data是泛型,可以返回String类型的信息。

    • ② 为什么有data承载数据,还需设置map?

    防止data的单一数据集不方便承载多种返回数据,但是一般用不到map属性,仅作备用。

    二、方法设计

    1、方法确定

        public static <T> R<T> success(T object) {
            R<T> r = new R<T>();
            r.data = object;
            r.code = 1;
            return r;
        }
    
        public static <T> R<T> error(String msg) {
            R r = new R();
            r.msg = msg;
            r.code = 0;
            return r;
        }
    
        public R<T> add(String key, Object value) {
            this.map.put(key, value);
            return this;
        }
    
        ...Getter and Setter...
    

    2、方法选择

    • ① 为什么error方法设置msg字段,而success方法设置data字段?

    data支持泛型,也可以用作error方法的设置,只是设置此方法方便通常情况下便捷使用。

    • ② Getter和Setter?

    是所有字段的get和set方法,如果通用方法不足以支持特殊情形,则可以灵活调整对应字段。

    三、结果类R

    结果类完整代码如下:

    /**
     * 通用的返回结果类,服务端响应的数据都会封装成此对象
     * @param <T>
     */
    @Data
    public class R<T> {
    
        private Integer code; //编码:1成功,0和其它数字为失败
    
        private String msg; //错误信息
    
        private T data; //数据
    
        private Map map = new HashMap(); //动态数据
    
        public static <T> R<T> success(T object) {
            R<T> r = new R<T>();
            r.data = object;
            r.code = 1;
            return r;
        }
    
        public static <T> R<T> error(String msg) {
            R r = new R();
            r.msg = msg;
            r.code = 0;
            return r;
        }
    
        public R<T> add(String key, Object value) {
            this.map.put(key, value);
            return this;
        }
    }
    

    四、结尾

    以上即为结果类-R的设计的全部内容,感谢阅读。

    相关文章

      网友评论

          本文标题:结果类-R的设计

          本文链接:https://www.haomeiwen.com/subject/iwlxertx.html