前言
之前在研究RxJava的时候,就深深的迷上了这种代码调用方式,简洁明了,逻辑也清晰。后台在使用Glide的时候发现这种.
调用方法真的很舒服。
附上一段代码:
1 | Glide.with(this) |
但后来才发现,最好的例子就是Android自带的AlertDialog.
1 | new AlertDialog.Builder(MainActivity.this) |
实现
现在看一段代码AlertDialog
源码1
2
3
4
5
6
7
8
9
10
11
12
13
14public Person(String name, int sex) {
this(name, sex, 0);
}
public Person(String name, int sex, int age) {
this(name,"",age,sex);
}
public Person(String firstName, String lastName, int age, int sex) {
this.firstName = firstName;
this.lastName = lastName;
this.age = age;
this.sex = sex;
}
person
有若干个属性,有三个构造方法。倘若某天person增加了几个字段,然后你就啪啪啪的把这几个字段加在了后面
1 | public Person(String firstName, String lastName, int age, int sex,String arg1,String arg2) { |
这样看起来就很臃肿,如果参数再多呢,看起来就很难受了。调用的时候还需要去确认每一个位置的参数是什么。
两种方式可以解决:
- Set/Get
- Builder
Set/Get方法的确可以解决。
1 | public class Person { |
Builder
1 | public class Person { |
调用1
2
3
4Person p = Builder.createBuilder()
.SetName("name")
.SetLastName("lastname")
.Build()
例子有很多,但不变的是思想。