实体类处理
2016-12-06 19:27
393 查看
解决问题
解决了adapter中(或其他展示页中)代码混乱的问题原理说明
1.DTO:从后台获取并解析后的实体类2.VO :用于展示的实体类(包括展示到界面的字段title,date,也包括逻辑控制字段type等)
3.通过实现接口Mapper,将DTO转换为VO,用于adapter代码更清晰;
大神博客[架构向] 谈Android中DTO -> VO的重要性
代码参考
定义接口:public interface Mapper<T>{ T transform(); }
列表DTO(后台返回的)
public class UserListDTO implements Mapper<List<UserVO>>{ private int totalCount; private List<UserDTO> userList; public int getTotalCount() { return totalCount; } public void setTotalCount(int totalCount) { this.totalCount = totalCount; } public List<UserDTO> getUserList() { return userList; } public void setUserList(List<UserDTO> userList) { this.userList = userList; } @Override public List<UserVO> transform() { List<UserVO> list = new ArrayList<>(); for(UserDTO dto : userList){ list.add(dto.transform()); } return list; } }
ItemDTO(后台返回的)
public class UserDTO implements Mapper<UserVO> { private String id; private String name; private String gender; private String other; public UserDTO(String id, String name, String gender, String other) { this.id = id; this.name = name; this.gender = gender; this.other = other; } public String getId() { return id; } public void setId(String id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getGender() { return gender; } public void setGender(String gender) { this.gender = gender; } public String getOther() { return other; } public void setOther(String other) { this.other = other; } @Override public UserVO transform() { UserVO user = new UserVO(); user.setName(TextUtils.isEmpty(name) ? "未知" : name); user.setType(TextUtils.equals("1", gender) ? 1 : 2); return user; } }
我们想要的(或者说方便Adapter直接获取数据的)
public class UserVO { private String name; private int type; public UserVO() { } public UserVO(String name, int type) { this.name = name; this.type = type; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getType() { return type; } public void setType(int type) { this.type = type; } }
这样往adapter中传数据时直接调用 mUserListDTO.transform(); 就好了,代码就又干净了一些
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件