设计模式-6(建造者模式)

建造者模式

"builder"

建造者模式与抽象工厂方式都是用来创建复杂的大对象,但builder模式是一步步创建,一般不是直接返回对象。好处是对象的构建代码与标识代码分离了。

要建造的产品

1
2
3
4
public class Product {
private String part1;
private String part2;
}

建造者接口

1
2
3
4
5
public interface Builder {
void buildPart1();
void buildPart2();
Product getProduct();
}

具体的建造者

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public class ConcreteBuilder implements Builder {
private Product product = new Product();

public void buildPart1() {
product.setPart1("NO: 89757");
}

public void buildPart2() {
product.setPart2("NAME: abc");
}

public Product getProduct() {
return product;
}
}

Director类

1
2
3
4
5
6
7
8
9
10
11
12
public class Director {
private Builder builder;

public Director(Builder builder) {
this.builder = builder;
}

public void construct() {
builder.buildPart1();
builder.buildPart2();
}
}

具体使用的测试类

1
2
3
4
5
6
7
8
9
public class Client {
public static void main(String... args) {
Builder builder = new ConcreteBuilder();
Director director = new Director(builder);
director.construct();
Product product = builder.getProduct();
System.out.print(product);
}
}