Android 链式调用(方法链)
16lz
2021-01-23
参考Android之链式调用(方法链)
最近在学习总结Android属性动画的时候,发现Android的属性动画设计采用了链式调用的方式,然后又回顾了一下了以前接触的开源框架Glide也是采用链式调用的方式,还有最近火的一塌糊涂的RxJava也是采用链式调用,为何如此之多的开源项目采用这种设计方式,今天来对比学习一下。
Glide.with(this).load(imageUrl).placeholder(R.mipmap.ic_launcher).error(R.mipmap.ic_launcher).into(imageView);
//通过返回this来实现 public BnRequestHandler url(String url) { URL = url; return this; } BnRequestHandler handler = new BnRequestHandler(getActivity()); handler.url("migraine/hq/") .get() .executeAsObservable() .subscribeOn(Schedulers.io()) .observeOn(Schedulers.io()) .subscribe(new Subscriber() { @Override public void onCompleted() { } @Override public void onError(Throwable e) { } @Override public void onNext(String s) { } }
MsgInfo msgInfo = new MsgInfo();msgInfo.setOwnerId("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());//下面是链式调用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());
对比两者优劣
普通:
1:维护性强
2:对方法的返回类型无要求
3:对程序员的业务要求适中
链式:
1:编程性强
2:可读性强
3:代码简洁
4:对程序员的业务能力要求高
5:不太利于代码调试
个人觉得链式调用很像装饰模式
更多相关文章
- 高焕堂《android从程序员到架构师之路》 YY讲坛直面大师学习架构
- Android NDK编译 ndk-build方式
- WebView与 JavaScript 交互方式
- Android 开发使用 Gradle 配置构建库模块的工作方式
- 在android中使用Post方式提交数据
- android在build中配置资源路径的方式
- android 7种网络连接方式--IT蓝豹
- Android 使用WebView加载含有echarts的页面,截图不显示的解决方式
- Android传感器、语音识别、定位系统、Google Map API、快捷方式