您的位置:首页 > 运维架构 > 网站架构

安卓开发 第三篇 我的安卓应用架构设计-----Responce类

2016-04-17 17:39 555 查看
我的项目中使用了model和Responce来保存数据,Responce是服务器直接返回的数据的类

例如,服务器返回:

{
"status":1000,
"msg":"succeed",
"requestTime":1460855439,
"responceTime":1460855483,
"data":{"name": "BeJson",
"url": "http://www.bejson.com",
"page": 88,
"isNonProfit": true,
"address": "科技园路,江苏苏州,中国"
}

}


那么Responce类就这样写:(只包含data)

public class Responce{
private String name;

private String url;

private int page;

private boolean isNonProfit;

private String address;

public void setName(String name){
this.name = name;
}
public String getName(){
return this.name;
}
public void setUrl(String url){
this.url = url;
}
public String getUrl(){
return this.url;
}
public void setPage(int page){
this.page = page;
}
public int getPage(){
return this.page;
}
public void setIsNonProfit(boolean isNonProfit){
this.isNonProfit = isNonProfit;
}
public boolean getIsNonProfit(){
return this.isNonProfit;
}
public void setAddress(String address){
this.address = address;
}
public String getAddress(){
return this.address;
}

}


有时候也会这样写:(只包含data)(据说不用setter和getter,访问速度会提升3倍)

public class Responce{
public String name;

public String url;

public int page;

public boolean isNonProfit;

public String address;
}


我这里使用Responce主要是为了应对服务器返回的数据比较杂乱,不是以对象的形式返回的,如果服务器返回的数据很规范,是以对象的格式返回的,你也可以直接使用你的model类接收。

还是以上面的json数据为例(全部数据)

Responce基类:

public class BaseResponce<T>{
private int status;

private String msg;

private int requestTime;

private int responceTime;

private T data;

public void setStatus(int status){
this.status = status;
}
public int getStatus(){
return this.status;
}
public void setMsg(String msg){
this.msg = msg;
}
public String getMsg(){
return this.msg;
}
public void setRequestTime(int requestTime){
this.requestTime = requestTime;
}
public int getRequestTime(){
return this.requestTime;
}
public void setResponceTime(int responceTime){
this.responceTime = responceTime;
}
public int getResponceTime(){
return this.responceTime;
}
public void setData(T data){
this.data = data;
}
public T getData(){
return this.data;
}

}


然后是具体的Responce类:(假如是登录的Responce)

public class LoginResponce extends BaseResponce<LoginData>{

public static class LoginData{
public String name;

public String url;

public int page;

public boolean isNonProfit;

public String address;

}

}


就这样,我们的Responce类就创建好了,我们可能需要将数据转化成自己的model,比如(model 类为User)

//我们的model类User

public class User{

private int id;

private String  name;

private long  phone;

private int  age;

private String  address;

public void setId(int id){
this.id = id;
}
public int getId(){
return this.id;
}
public void setName(String name){
this.name = name;
}
public String getName(){
return this.name;
}
public void setPhone(long phone){
this.phone = phone;
}
public long getPhone(){
return this.phone;
}
public void setAge(int age){
this.age = age;
}
public int getAge(){
return this.age;
}
public void setAddress(String address){
this.address = address;
}
public String getAddress(){
return this.address;
}

}

//然后Responce类

public class LoginResponce extends BaseResponce<LoginData>{

public static class LoginData{
public String name;

public String url;

public int page;

public boolean isNonProfit;

public String address;

}

public User  UserMapper(){

User user=new User();
usr.setName(data.name);
user.setAdress(data.adress);

return User;

}

}


如果服务器返回的数据很规范,是以对象的格式返回的,你也可以直接使用你的model类接收,如:

public class LoginResponce extends BaseResponce<User>{

}


是不是很简单,好了,就写到这里吧。

如果有更深的理解,本文将会修改;

如果有错误的地方,欢迎指正;

如果你有更好的理解,欢迎交流。

本文为原创文章,版权归博主所有,转载请注明出处。

更多资料:

我的github地址以及使用demo: https://github.com/naivor/naivorapp
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: