建造者模式:主要用于创建一些复杂的对象,这些对象内部构建间的构造顺序通常是稳定的,但对象内部的构建通常面临复杂变化
import java.util.ArrayList;
import java.util.List;
/**
* 建造者模式:
* 关键:
* 指挥类(Dircetor):传入建造者类,并定义按顺序执行建造者中的方法
* 建造者接口:定义执行的方法
* 具体建造者:实现建造者接口中的方法
* Builder
* @author zbl
*
*/
public class BuilderCustomer {
public static void main(String[] args) {
Builder builder = new ConcreteBuilderA();
Director director = new Director(builder);
director.Construct();
Product result = builder.getResult();
result.show();
}
}
class Director{
private Builder builder;
public Director(Builder builder) {
super();
this.builder = builder;
}
public void Construct(){
builder.buildPart1();
builder.buildPart2();
}
}
interface Builder{
public void buildPart1();
public void buildPart2();
public Product getResult();
}
class ConcreteBuilderA implements Builder{
private Product product = new Product();
@Override
public void buildPart1() {
product.add("xiix");
}
@Override
public void buildPart2() {
product.add("hah");
}
@Override
public Product getResult() {
return product;
}
}
class Product{
private List<String> parts = new ArrayList<>();
public void add(String str){
parts.add(str);
}
public void show(){
for(String s : parts){
System.out.println(s);
}
}
}