梦想还是要有的,万一忘了咋办?

0%

创建者模式

概述

创建者模式关注的是零件类型和装配工艺顺序,这是与工厂方法模式最大的不同之处,虽然同为创建型模式,但是重点不同。

类图

upload successful

角色

  • 抽象建造者 Builder
  • 具体建造者 Concrete Builder
  • 产品 Product
  • 导演者 Director

示例

Product.java

1
2
3
public class Product{

}

Builder.java

1
2
3
4
5
6
7
public abstract class Builder {
public abstract void setPart1();
public abstract void setPart2();
public abstract void setPart3();

public abstract Product builderProduct();
}

ConcreteBuilder.java

1
2
3
4
5
6
7
8
9
10
11
12
13
public class ConcreteBuilder extends Builder{

public void setPart1(){
}
public void setPart2(){
}
public void setPart3(){
}

public Product builderProduct(){
return product;
}
}

Diector.java

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

public Product build(){
builder.setPart1();
builder.setPart2();
builder.setPart3();

return builder.builderProduct();
}

}

应用

优点

  • 封装性
  • 建造者独立,容易扩展
  • 便于控制细节风险,由于具体的建造者是独立的,因此可以对建造过程逐步细化,而不对其他模块产生任何影响。

场景

  • 相同的方法,不同的执行顺序,产生不同的结果时,可以采用创建者模式。
  • 多个部件或者零件,都可以装配到一个对象中,但是产生的运行结果又不相同时,则可以使用该模式。
  • 产品非常复杂,或者产品类中的方法调用顺序不同产生了不同的效能,这个时候使用建造者模式。
  • 在对象创建过程中会使用到系统的一些其他对象,这些对象在产品对象创建过程中不易得到时,也可采用创建者模式。

Director

Director 类起到封装作用,避免高层模块深入到建造者内部的实现类。导演类可以有多个,根据项目的实际情况来决定使用哪个。