定义一个建造的抽象类,定义各个具体的抽象类来继承于抽象类,定义一个指挥者类,在客户端的代码中,通过向上转型,从而执行相应建造类中的方法,从而构建出想要的产品。(例如同过指挥者构造出不同的小人)。
2、结构图
3、代码
package 测试;
//建造抽象类
abstract class Builder {
public abstract void build();
}
// 建造具体类
class Builder1 extends Builder {
public void build() {
System.out.println("build1");
}
}
// 建造具体类
class Builder2 extends Builder {
public void build() {
System.out.println("build2");
}
}
// 指挥者类
class Direction {
public void construct(Builder builder) {
builder.build();
}
}
// 客户端代码
public class Main2 {
public static void main(String[] args) {
Direction dir = new Direction();
Builder builder = new Builder1();// 向上转型
dir.construct(builder);
}
}
运行结果:
build1