结果类-R的设计

2022-04-14  本文已影响0人  石头耳东

零、本文纲要

一、属性(字段)设计

1、属性确定

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

private Integer code; //编码:1成功,0和其它数字为失败

private String msg; //错误信息

private T data; //数据

private Map map = new HashMap(); //动态数据

2、属性选择

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

防止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、方法选择

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

是所有字段的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的设计的全部内容,感谢阅读。

上一篇 下一篇

猜你喜欢

热点阅读