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

来源:互联网 发布:php办公管理系统 编辑:程序博客网 时间:2024/06/07 19:44

我的项目中使用了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类Userpublic class Userprivate 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

0 0
原创粉丝点击