零、本文纲要
- 一、属性(字段)设计
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的设计的全部内容,感谢阅读。
网友评论