建造者模式的生命周期通常包括以下步骤:
- 创建一个建造者对象
- 调用该创建者对象的一系列设置方法,以指定对象的各个属性
- 调用build()方法,该方法将运行实际的构建过程
- 返回构建的对象
建造者模式可以减少代码的重复性,并且可以简化创建复杂对象的过程,从而提高代码的可读性和可维护性。由于它提供了灵活的构造选项,因此建造者模式尤其适用于创建具有多个可选属性的对象。
建造者模式通常涉及四个主要组件:产品(Product),建造者(Builder),指挥者(Director)和客户端(Client)。
- 产品 是我们要构建的对象,它具有一系列属性和方法。
- 建造者 是一个具有构建产品各个组成部分的接口或抽象类。它定义了构建对象所需的方法,并且可以有多种实现。
- 指挥者 是负责协调建造者的对象。它负责确保构造器按正确的顺序调用,最终构建出目标对象,同时它可能也包含一些逻辑,比如提供默认值和默认构造器等。
- 客户端 是调用指挥者构建对象的代码。它只需要实例化指挥者和相应的建造者,并将建造器传递给指挥者即可。
示例代码:
// 产品类
class Product {
private String partA;
private String partB;
private String partC;
public void setPartA(String partA) {
this.partA = partA;
}
public void setPartB(String partB) {
this.partB = partB;
}
public void setPartC(String partC) {
this.partC = partC;
}
public String getPartA() {
return partA;
}
public String getPartB() {
return partB;
}
public String getPartC() {
return partC;
}
}
// 建造者接口
interface Builder {
public void buildPartA();
public void buildPartB();
public void buildPartC();
public Product getProduct();
}
// 具体建造者类
class ConcreteBuilder implements Builder {
private Product product = new Product();
public void buildPartA() {
product.setPartA("PartA");
}
public void buildPartB() {
product.setPartB("PartB");
}
public void buildPartC() {
product.setPartC("PartC");
}
public Product getProduct() {
return product;
}
}
// 指挥者类
class Director {
private Builder builder;
public Director(Builder builder) {
this.builder = builder;
}
public void construct() {
builder.buildPartA();
builder.buildPartB();
builder.buildPartC();
}
}
// 客户端代码
public class Client {
public static void main(String[] args) {
Builder builder = new ConcreteBuilder();
Director director = new Director(builder);
director.construct();
Product product = builder.getProduct();
System.out.println(product.getPartA());
System.out.println(product.getPartB());
System.out.println(product.getPartC());
}
}
标签:builder,product,String,void,组装,建造,实例,public
From: https://www.cnblogs.com/li053/p/17340818.html