Android Builder模式在开发中的应用
Glide.with(mContext) .load(url) .centerCrop() .placeholder(R.drawable.default_img) .crossFade() .into(mImageView);
同时在年初的时候,学习RXJava的时候,用链式编程很优雅。
Observable .just( "1" , "2" ) .subscribeOn(Schedulers.io() ) .observeOn(AndroidSchedulers.mainThread()) .subscribe(new Action1<String>() { @Override public void call(String s) { } }) ;
今天就来学习一下,建造者模式在Android中简单应用 。
Builder 的好处
- 代码可读性好,只需要写一句代码,链式编程很优雅
- 方便。通过不同的组合就可以创建不同的对象
- 解耦。不需要知道细节,将对象本身与对象构造过程分离。
Builder 模式要怎么写?
package com.app.lib; /** * Created by ${zyj} on 2016/6/27. */ public class UserMoule { private String id ; private String name ; public UserMoule( String id , String name ){ this.id = id ; this.name = name ; } static class Builder { private String id ; private String name ; public Builder setId(String id) { this.id = id; return this ; } public Builder setName(String name) { this.name = name; return this ; } public UserMoule create(){ return new UserMoule( id , name ) ; } } }
调用
new UserMoule.Builder() .setId( "id") .setName( "json") .create() ;
为什么 Builder 要用 Static 修饰?
一般写内部类的意图都是为了说明该类和宿主类关系密切,而private , static , final 这些可以单独拿出来说,static这个区别比较大,没有static修饰,说明此类必须依赖宿主类的对象;而有static修饰,就不依赖与对象的存在了,类名. 即可,整体类似方法上添加static。private这玩意,完全取决于你是否希望将此类暴露出去;final则是为了标明该类不可继承修改.
而且
使用static就如同你新建了一个JAVA文件,静态内部类不会保持对外部类的引用。如果你的builder需要外部类的引用,那它Build就没有意义了,所以必须加static。
总结
- 使用 Builder 模式可以解耦,更方便地构造不同的对象
- Builder 类要用 static 修饰
- 这里使用了简化的Builder模式,将抽象建造者省略,并且也省略了指导者角色 。
相关链接:http://www.jianshu.com/p/5d9db54892c8

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Android Studio git 版本回退到最新的版本
1、场景 1.1 最新三次的提交 分别是:定义了一个变量k = 10 、 定义了一个变量 j = 6 、 定义了一个变量 i = 5 ; 本地仓库 和 远程仓库保持一致 1.2 我添加了一行代码 如何回退版本到最近的一次,也就是 定义一个变量 k = 10 这个版本 ? 回退的结果 已经回到我们想要的版本了!
- 下一篇
Android 国际化
由于公司的项目是投放 google play store , 所以要做国际化。国际化遇到的两个大问题 字符串国际化 布局样式国际化 一:字符串国际化 解决这个问题很简单,在res目录下放不同国家的value文件夹,在相应文件夹里的 strings.xml 文件放对应的语言即可。比如 二:布局样式国际化 中国人的阅读习惯是从左往右阅读、阿拉伯国家的阅读习惯是从右往左读。所以同一个布局在不同的语言环境下,显示的样式是不一样的。比如: 默认情况下的布局 阿拉伯语言情况下的布局 例子中的布局很简单,左边是一个文本,文本的后面有一张图片。 可以看到在阿拉伯语言环境下的页面布局,文本跑到了屏幕的右侧,而图片却不见了。(前面已经说过阿拉伯国家的阅读习惯是从右往左的) 解决方案: 方案一:建立多个layout 文件夹,从新布局 方案二:Android 4.2系统之后,Google在Android中引入了RTL布局 对于方案一,这个方法比较老了,而且几乎要把所有的布局重写一遍,所以推荐使用第二种方法。在Android 4.2系统之...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Linux系统CentOS6、CentOS7手动修改IP地址
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2整合Redis,开启缓存,提高访问速度
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- MySQL8.0.19开启GTID主从同步CentOS8
- Mario游戏-低调大师作品
- Docker安装Oracle12C,快速搭建Oracle学习环境
- CentOS7安装Docker,走上虚拟化容器引擎之路