建造者模式(Builder Pattern)是一种创建型设计模式,也被称为生成器模式。它将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。
优点:
缺点:
public class Person {
private String mPersonName;
private int mPersonAge;
private int mSex;
private String mCardNumber;
public Person Person(){
return new Person(new Person.Builder());
}
public Person(Person.Builder builder){
this.mCardNumber = builder.mCardNumber;
this.mSex = builder.mSex;
this.mPersonAge = builder.mPersonAge;
this.mPersonName = builder.mPersonName;
}
public static final class Builder {
private String mPersonName;
private int mPersonAge;
private int mSex;
private String mCardNumber;
public Builder(){}
public Person build(){
return new Person(this);
}
public Person.Builder setPersonName(String mPersonName) {
this.mPersonName = mPersonName;
return this;
}
public Person.Builder setPersonAge(int mPersonAge) {
this.mPersonAge = mPersonAge;
return this;
}
public Person.Builder setSex(int mSex) {
this.mSex = mSex;
return this;
}
public Person.Builder setCardNumber(String mCardNumber) {
this.mCardNumber = mCardNumber;
return this;
}
}
}
//使用Buidler构建Person对象
Person person = new Person.Builder()
.setPersonName("张三")
.setSex(1)
.setPersonAge(30)
.build();
建造者模式通过将复杂对象的构建过程分解为多个简单的构建步骤,然后按照顺序逐步构建,使得构建过程更加清晰和易于管理。同时,由于构建过程和表示被分离,因此可以创建不同的表示,从而提高了系统的灵活性和可扩展性。
在使用建造者模式时,需要仔细考虑产品的组成部分是否相同,以及产品的内部变化是否复杂,以避免在后期维护中产生不必要的麻烦。此外,还需要根据实际情况选择合适的角色和实现方式,以达到最佳的设计效果。