java 建造者模式 例子
时间: 2023-05-19 12:02:42 浏览: 100
建造者模式是一种创建型设计模式,它允许你创建复杂对象的不同表示,并且可以在不暴露对象创建细节的情况下,将其构造过程分离出来。下面是一个 Java 建造者模式的例子:
```
public class Person {
private String name;
private int age;
private String address;
private String phone;
public static class Builder {
private String name;
private int age;
private String address;
private String phone;
public Builder(String name, int age) {
this.name = name;
this.age = age;
}
public Builder setAddress(String address) {
this.address = address;
return this;
}
public Builder setPhone(String phone) {
this.phone = phone;
return this;
}
public Person build() {
return new Person(this);
}
}
private Person(Builder builder) {
this.name = builder.name;
this.age = builder.age;
this.address = builder.address;
this.phone = builder.phone;
}
// getters and setters
}
```
在这个例子中,我们创建了一个名为 Person 的类,它有四个属性:name、age、address 和 phone。我们使用了一个名为 Builder 的静态内部类来构建 Person 对象。Builder 类中有一个构造函数,它接受 name 和 age 两个参数,并且有三个可选的方法:setAddress、setPhone 和 build。setAddress 和 setPhone 方法用于设置 address 和 phone 属性,它们都返回 Builder 对象本身,以支持链式调用。build 方法用于创建 Person 对象,并且将 Builder 对象中的属性复制到 Person 对象中。最后,我们在 Person 类中定义了一个私有构造函数,它接受一个 Builder 对象,并且将 Builder 对象中的属性复制到 Person 对象中。
使用建造者模式,我们可以像下面这样创建 Person 对象:
```
Person person = new Person.Builder("张三", 20)
.setAddress("北京市朝阳区")
.setPhone("13888888888")
.build();
```
这样,我们就可以创建一个具有多个属性的 Person 对象,而不需要在构造函数中传递大量的参数。
阅读全文