简单的示例v2
package com.designepattern.buildertest.v2;
/**
* @Date:2020/12/8
* @Content:
*/
public class MainDemo {
public static void main(String[] args) {
Builder builder=new concreteBuilder();
Director director=new Director(builder);
director.createProduct().show();
}
}
class Product{
private String partA;
private String partB;
public void setPartA(String partA) {
this.partA = partA;
}
public void setPartB(String partB) {
this.partB = partB;
}
public void show(){
System.out.println(partA);
System.out.println(partB);
}
}
abstract class Builder{
public Product product=new Product();
abstract void buildPartA();
abstract void buildPartB();
}
class concreteBuilder extends Builder{
@Override
void buildPartA() {
product.setPartA("builde partA");
}
@Override
void buildPartB() {
product.setPartB("builde partB");
}
public Product getProduct(){
return product;
}
}
class Director{
Builder builder;
public Director(Builder builder){
this.builder=builder;
}
public Product createProduct(){
builder.buildPartA();
builder.buildPartB();
return builder.product;
}
}