1.简要说明
将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。
2.代码实现
public class Builder {
public static void main(String[] args) {
Director director = new Director();
Creater creater1 = new Creater1();
director.construct(creater1);
Product product1 = creater1.getResult();
product1.show();
}
}
class Director {
void construct(Creater creater) {
creater.buiderPart();
}
}
abstract class Creater {
abstract void buiderPart();
abstract Product getResult();
}
class Creater1 extends Creater {
private Product product = new Product();
@Override
void buiderPart() {
product.add("A");
product.add("B");
}
@Override
Product getResult() {
return product;
}
}
class Creater2 extends Creater {
private Product product = new Product();
@Override
void buiderPart() {
product.add("C");
product.add("D");
}
@Override
Product getResult() {
return product;
}
}
class Product {
List<String> parts = new ArrayList<>();
public void add(String part) {
parts.add(part);
}
public void show() {
System.out.println("产品Parts:");
for (String part : parts) {
System.out.print(part + ' ');
}
}
}