过去写链式调用感觉又臭又长,这种编码方式的代码看着很不爽,且不明白调用的顺序。而且老师教的时候就已经习惯了,“一行一句,分号结尾”。现在呢,感觉又要极力推崇链式调用了,因为它还真方便!当你慢慢熟悉之后就会发现这样写无论在可读性和代码量上都有优势。
在讲链式调用之前,还是先说一下,java的一个设计模式吧 – Builder模式
Builder模式
Builder模式是一种一步一步创建一个复杂对象的设计模式,这种设计模式的精髓就主要有两点:其一,用户使用简单,并且可以在不需要知道内部构建细节的情况下,就可以构建出复杂的对象模型;其二,对于设计者来说,这是一个解耦的过程,这种设计模式可以将构建的过程和具体的表示分离开来。
Builder模式的使用场景
相同的方法,不同的执行顺序,产生不同的时间结果
多个部件或零件,都可以装配到一个对象中,但是产生的运行结果又不同时
产品类非常复杂,或者产品类中的调用顺序不同产生了不同的作用,这个时候用建造者模式非常适合
当初始化一个对象特别复杂,如参数多,且很多参数都具有默认值
链式调用
链式调用的变形太多了,先看比较经典的
package builder;
/**
* Builder模式,链式调用Demo
*
* @author junehappylove
*
*/
public class User {
private final String firstName;
private final String lastName;
private final int age;
private final String phone;
private final String address;
private User(UserBuilder builder) {
this.firstName = builder.firstName;
this.lastName = builder.lastName;
this.age = builder.age;
this.phone = builder.phone;
this.address = builder.address;
}
public String getFirstName() {
return firstName;
}
public String getLastName() {
return lastName;
}
public int getAge() {
return age;
}
public String getPhone() {
return phone;
}
public String getAddress() {
return address;
}
//Builder
public static class UserBuilder {
private final String