android总结之链式调用(方法链)

上传人:第*** 文档编号:31311507 上传时间:2018-02-06 格式:DOC 页数:7 大小:37KB
返回 下载 相关 举报
android总结之链式调用(方法链)_第1页
第1页 / 共7页
android总结之链式调用(方法链)_第2页
第2页 / 共7页
android总结之链式调用(方法链)_第3页
第3页 / 共7页
android总结之链式调用(方法链)_第4页
第4页 / 共7页
android总结之链式调用(方法链)_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《android总结之链式调用(方法链)》由会员分享,可在线阅读,更多相关《android总结之链式调用(方法链)(7页珍藏版)》请在金锄头文库上搜索。

1、Android 总结之链式调用 (方法链)前言:最近在学习总结 Android 属性动画的时候,发现 Android 的属性动画设计采用了链式调用的方式,然后又回顾了一下了以前接触的开源框架 Glide 也是采用链式调用的方式,还有最近火的一塌糊涂的 RxJava 也是采用链式调用,为何如此之多的开源项目采用这种设计方式,今天来对比学习一下。什么是链式调用?链式调用其实只不过是一种语法招数。它能让你通过重用一个初始操作来达到用少量代码表达复杂操作的目的。表现形式:一个初始化操作之后,后面的调用以“.”连接起来。例如 Glide 使用Glide.with(this).load(imageUrl)

2、.placeholder(R.mipmap.ic_launcher).error(R.mipmap.ic_launcher).into(imageView);实际举例:以以前做的简单的 IM 即时通讯消息体 MsgInfo 为例。1.)普通实现方式MsgInfo.java 实现方式复制代码public class MsgInfo /* 消息的类型*/public static class Type public final static int TEXT = 0; / 文本消息public final static int IMAGE = 1; / 图片消息public final stati

3、c int VOICE = 2; / 语音消息public final static int MOVIE = 3;/ 视频消息public final static int URL = 4;/URL 消息/* 消息的方向*/public static class Direct public final static int SEND = 0; / 发送public final static int RECEIVE = 1; / 接收 /* 消息的状态*/public static class Status public final static int SEND_SUCCESS= 0; / 已

4、发送public final static int SENDING = 1; / 正在发送public final static int SEND_FAILED = 2; / 发送失败public final static int READ = 3; / 已读public final static int UNREAD = 4; / 未读private long msgId;/消息 Idprivate String ownerId;/消息属于哪个用户private String relatedId;/消息关联到哪个用户;private String body;/消息体private long

5、time;/消息发送接收时间private int direct;/ 消息的方向private int status;/消息的状态private int type;/消息的类型public MsgInfo() public long getMsgId() return msgId;public void setMsgId(long msgId) this.msgId = msgId;public int getType() return type;public void setType(int type) this.type = type;public String getOwnerId()

6、return ownerId;public void setOwnerId(String ownerId) this.ownerId = ownerId;public String getRelatedId() return relatedId;public void setRelatedId(String relatedId) this.relatedId = relatedId;public String getBody() return body;public void setBody(String body) this.body = body;public long getTime()

7、 return time;public void setTime(long time) this.time = time;public int getDirect() return direct;public void setDirect(int direct) this.direct = direct;public int getStatus() return status;public void setStatus(int status) this.status = status;复制代码调用方式复制代码MsgInfo msgInfo = new MsgInfo();msgInfo.set

8、OwnerId(100011002);msgInfo.setRelatedId(1000110003);msgInfo.setBody(hello 普通调用 );msgInfo.setType(MsgInfo.Type.TEXT);msgInfo.setDirect(MsgInfo.Direct.SEND);msgInfo.setStatus(MsgInfo.Status.SENDING);msgInfo.setTime(System.currentTimeMillis();复制代码2.)链式调用方式MsgInfo.java 实现复制代码public class MsgInfo /* 消息的类

9、型*/public static class Type public final static int TEXT = 0; / 文本消息public final static int IMAGE = 1; / 图片消息public final static int VOICE = 2; / 语音消息public final static int MOVIE = 3;/ 视频消息public final static int URL = 4;/URL 消息/* 消息的方向*/public static class Direct public final static int SEND = 0;

10、/ 发送public final static int RECEIVE = 1; / 接收/* 消息的状态*/public static class Status public final static int SEND_SUCCESS= 0; / 已发送public final static int SENDING = 1; / 正在发送public final static int SEND_FAILED = 2; / 发送失败public final static int READ = 3; / 已读 public final static int UNREAD = 4; / 未读pri

11、vate long msgId;/消息 Idprivate String ownerId;/消息属于哪个用户private String relatedId;/消息关联到哪个用户;private String body;/消息体private long time;/消息发送接收时间private int direct;/ 消息的方向private int status;/消息的状态private int type;/消息的类型public MsgInfo() public long getMsgId() return msgId;public MsgInfo setMsgId(long msg

12、Id) this.msgId = msgId;return this;public int getType() return type;public MsgInfo setType(int type) this.type = type;return this;public String getOwnerId() return ownerId;public MsgInfo setOwnerId(String ownerId) TnerId = ownerId;return this;public String getRelatedId() return relatedId; public Msg

13、Info setRelatedId(String relatedId) this.relatedId = relatedId;return this;public String getBody() return body;public MsgInfo setBody(String body) this.body = body;return this;public long getTime() return time;public MsgInfo setTime(long time) this.time = time;return this;public int getDirect() retu

14、rn direct;public MsgInfo setDirect(int direct) this.direct = direct;return this;public int getStatus() return status;public MsgInfo setStatus(int status) this.status = status;return this;复制代码调用方式复制代码MsgInfo msgInfo = new MsgInfo();msgInfo.setOwnerId(100011002).setRelatedId(1000110003).setBody(hello 链式调用).setType(MsgInfo.Type.TEXT).setDirect(MsgInfo.Direct.SEND).setStatus(MsgInfo.Status.SENDING).setTime(System.currentTimeMillis();复制代码3.)对比两者优劣普通:1:维护性强2:对方法的返回类型无要求 3:对程序员的业务要求适中链式:1:编程性强2:可读性强3:代码简洁4:对程序员的业务能力要求高5:不太利于代码调试

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 中学教育 > 其它中学文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号