AlertDialog dialog = new AlertDialog.Builder(this)
.setTitle()
.setMessage()
.show();
在使用这个模式之前首先需要想为什么用到建造者模式 举个栗子
有一个班级对象Person 班主任说需要统计学生的姓名 年龄 然后几下写完
public class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
public static void main(String[] args) {
Person person = new Person("小明", 18);
System.out.println(person.toString());
}
然后这个时候班主任说了 需要在添加地址 然后马上就改好了
public class Person {
private String name;
private int age;
private String address;
public Person(String name, int age,String address) {
this.name = name;
this.age = age;
this.address = address;
}
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", age=" + age +
", address='" + address + '\'' +
'}';
}
}
public static void main(String[] args) {
Person person = new Person("小明", 18,"火星");
System.out.println(person.toString());
}
改好以下 班主任又说了 需要再添加学生的班级 这个时候难道还需要在去修改构造函数吗
这样也太麻烦了 这个时候 建造者模式就可以用了
public class Person {
private String name;
private int age;
private String address;
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", age=" + age +
", address='" + address + '\'' +
'}';
}
public static class Builder {
private Person mPerson;
public Builder() {
mPerson = new Person();
}
public Builder setName(String name) {
mPerson.name = name;
return this;
}
public Builder setAge(int age) {
mPerson.age = age;
return this;
}
public Builder setAddress(String address) {
mPerson.address = address;
return this;
}
public Builder create() {
System.out.println(mPerson.toString());
return this;
}
}
}
public static void main(String[] args) {
Person.Builder builder = new Person.Builder()
.setAge(18)
.setName("小明")
.setAddress("月球")
.create();
}
AlertDialog dialog = new AlertDialog.Builder(this)
.setTitle()
.setMessage()
.show();