import java.util.*;

class Product {
    private String partA;
    private String partB;
    public Product() {}
    public void setPartA(String s) { partA = s; }
    public void setPartB(String s) { partB = s; }
}

interface Builder {
    public (1);
    public void buildPartB();
    public (2);
}

class ConcreteBuilder1 implements Builder {
    private Product product;
    public ConcreteBuilder1() { product = new Product(); }
    public void buildPartA() { (3)("Component A"); }
    public void buildPartB() { (4)("Component B"); }
    public Product getResult() { return product;}
}

class ConcreteBuilder2 implements Builder {
    // 代码省略
}

class Director {
    private Builder builder;
    public Director(Builder builder) { this.builder = builder; }
    public void construct() {
        (5);
        // 代码省略
    }
}

class Test {
    public static void main(String[] args) {
        Director director1 = new Director(new ConcreteBuilder1());
        director1.construct();
    }
}