建造者模式是设计模式的一种,将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。
实用范围
1 当创建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方式时。[1]
2 当构造过程必须允许被构造的对象有不同表示时。
public class Student {
private String name;
private int gender;
private String address;
public Student(StudentBuilder builder){
this.name=builder.getName();
this.gender=builder.getGender();
this.address=builder.getAddress();
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getGender() {
return gender;
}
public void setGender(int gender) {
this.gender = gender;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
}
public class StudentBuilder {
private String name;
private int gender;
private String address;
public String getName() {
return name;
}
public StudentBuilder setName(String name) {
this.name = name;
return this;
}
public int getGender() {
return gender;
}
public StudentBuilder setGender(int gender) {
this.gender = gender;
return this;
}
public String getAddress() {
return address;
}
public StudentBuilder setAddress(String address) {
this.address = address;
return this;
}
public Student build(){
return new Student(this);
}
}
使用方式:
Student student=new StudentBuilder()
.setAddress("昌平区霍营")
.setGender(2)
.setName("小王")
.build();
Toast.makeText(BuilderMethodActivity.this, student.getAddress(), Toast.LENGTH_SHORT).show();
android种最典型的建造者模式就是AlertDialog,感兴趣的可以去看看源码
最后附上java23中设计模式的demo
github地址:https://github.com/zyj18410105150/DesignMode