建造者模式(Builder Mode)
别称称生成器模式,用于更方便的创建,如果一个类的构造方法太多参数,而每次创建对象又不是需要所有的参数都创建,那么使用建造者模式再合适不过了
常见实现方式
1、定义一个静态内部类,该静态内部类对象需要持有外部类对象
2、Android中最常见的建造者模式,为AlertDialog
3、下面看代码示例
public class Girl {
private String name;
private int age;
private int height;
private String hometown;
private Girl(){
super(); //私有构造方法,强迫你使用builder形式
}
public void showProfile(){
System.out.println("name = " + name + ", age = " + age + ", height = " + height + ", hometown = " + hometown);
}
public static class Builder{
Girl girl;
public Builder(){
girl = new Girl();
}
public Builder setName(String name){
girl.name = name;
return this;
}
public Builder setAge(int age){
girl.age = age;
return this;
}
public Builder setHeight(int height){
girl.height = height;
return this;
}
public Builder setHometown(String hometown){
girl.hometown = hometown;
return this;
}
public Girl build(){
if(girl.name == null){
throw new NullPointerException("this girl's name is null");
}
return girl;
}
}
public static void main(String args[]) {
Girl.Builder builder = new Girl.Builder();
Girl girl = builder.setName("员外的美女同学").setAge(15).setHeight(177).setHometown("北京").build();
girl.showProfile();
}
}
建造者模式的好处
写代码舒服啊,你想想如果创建一个对象, 每次都需要传递10个参数,必选参数和可选参数放在一起,代码多难阅读与多难理解,使用建造者模式,代码维护起来很舒服