Builder模式
程序员文章站
2022-06-04 17:02:07
...
BasePerson
public class BasePerson {
private String id;
private String name;
private int age;
private String address;
private String phone;
private int weight;
private String school;
@Override
public String toString() {
return "id:" + id + "--name:" + name + "--age:" + age + "--address:" + address + "--phone:" + phone + "--weight:" + weight + "--school:" + school;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public void setAge(int age) {
this.age = age;
}
public void setAddress(String address) {
this.address = address;
}
public void setPhone(String phone) {
this.phone = phone;
}
public void setWeight(int weight) {
this.weight = weight;
}
public void setSchool(String school) {
this.school = school;
}
}
Person
public class Person extends BasePerson{
Person(Builder builder) {
setAddress(builder.address);
setAge(builder.age);
setId(builder.id);
setName(builder.name);
setPhone(builder.phone);
setWeight(builder.weight);
setSchool(builder.school);
}
public static class Builder{
private String id;
private String name;
private int age;
private String address;
private String phone;
private int weight;
private String school;
public Builder() {
}
public Builder setId(String id) {
this.id = id;
return this;
}
public Builder setName(String name) {
this.name = name;
return this;
}
public Builder setAge(int age) {
this.age = age;
return this;
}
public Builder setAddress(String address) {
this.address = address;
return this;
}
public Builder setPhone(String phone) {
this.phone = phone;
return this;
}
public Builder setWeight(int weight) {
this.weight = weight;
return this;
}
public Builder setSchool(String school) {
this.school = school;
return this;
}
public Person build() {
return new Person(this);
}
}
}
TestPerson
public class TestPerson {
private static final String TAG = BuilderActivity.class.getName();
public void testBuilder(View view) {
Person person = new Person.Builder()
.setAge(1)
.setId("dd")
.setName("小明")
.setAddress("石家庄")
.setSchool("河北科技大学")
.setWeight(12)
.setPhone("121212112121")
.build();
Log.e(TAG, "info: " + person.toString());
}
}