构建者模式
下面是一个简单的Java代码展示示例,展示了构建者模型的现实:
// 产品类
class Product {
private String part1;
private String part2;
private String part3;
public void setPart1(String part1) {
this.part1 = part1;
}
public void setPart2(String part2) {
this.part2 = part2;
}
public void setPart3(String part3) {
this.part3 = part3;
}
public void show() {
System.out.println("Product Parts:");
System.out.println("Part 1: " + part1);
System.out.println("Part 2: " + part2);
System.out.println("Part 3: " + part3);
}
}
// 抽象建造者类
abstract class Builder {
protected Product product;
public Builder() {
product = new Product();
}
public abstract void buildPart1();
public abstract void buildPart2();
public abstract void buildPart3();
public Product getProduct() {
return product;
}
}
// 具体建造者类
class ConcreteBuilder extends Builder {
@Override
public void buildPart1() {
product.setPart1("Part 1");
}
@Override
public void buildPart2() {
product.setPart2("Part 2");
}
@Override
public void buildPart3() {
product.setPart3("Part 3");
}
}
// 指挥者类
class Director {
private Builder builder;
public void setBuilder(Builder builder) {
this.builder = builder;
}
public Product construct() {
builder.buildPart1();
builder.buildPart2();
builder.buildPart3();
return builder.getProduct();
}
}
// 客户端代码
public class BuilderPatternExample {
public static void main(String[] args) {
Director director = new Director();
Builder builder = new ConcreteBuilder();
director.setBuilder(builder);
Product product = director.construct();
product.show();
}
}
在上面的例子中,我们首先确定了产品类Product
,它具有三个部分。然后,我们确定了抽像创建者类Builder
,其中包含了创新产品的抽象方法。
接下来,我们发现了实体创建者类ConcreteBuilder
,它继承自抽像创建者类。在实体构建者类中,我们发现了抽像方法,路径构造产品的各个部分。
然后,我们确定了指南者类Director
,它负责组织构建者的工作流程。通过调用构建者的方法,按照特定的顺序结构产品,并返回最终的产品实例。
最后,在客户端代码中,我们创建了指南者对象和实体建造者对象,并将工具实体建造者对象传递给指南者。然后来,通过调用指南者的方法,我们开始构建产品。最后,我们通过construct()
调用产品的show()
方法,展示最终构造的产品。
构建者模型的关键点是将产品的构建过程与其表示分离开来,使相同的构建过程可以创建
不同的表现。通过建造者模式,我们可以以更灵动的地方建造复杂的对比,同时将建造过程序封装起来,使客户终端代号与实体结构过程序解劳。
标签:builder,product,String,void,Product,10.10,public From: https://www.cnblogs.com/luoqingci/p/18556246