概述
创建者模式关注的是零件类型和装配工艺顺序,这是与工厂方法模式最大的不同之处,虽然同为创建型模式,但是重点不同。
类图
角色
- 抽象建造者 Builder
- 具体建造者 Concrete Builder
- 产品 Product
- 导演者 Director
示例
Product.java
1 | public class Product{ |
Builder.java
1 | public abstract class Builder { |
ConcreteBuilder.java
1 | public class ConcreteBuilder extends Builder{ |
Diector.java
1 | public class Director{ |
应用
优点
- 封装性
- 建造者独立,容易扩展
- 便于控制细节风险,由于具体的建造者是独立的,因此可以对建造过程逐步细化,而不对其他模块产生任何影响。
场景
- 相同的方法,不同的执行顺序,产生不同的结果时,可以采用创建者模式。
- 多个部件或者零件,都可以装配到一个对象中,但是产生的运行结果又不相同时,则可以使用该模式。
- 产品非常复杂,或者产品类中的方法调用顺序不同产生了不同的效能,这个时候使用建造者模式。
- 在对象创建过程中会使用到系统的一些其他对象,这些对象在产品对象创建过程中不易得到时,也可采用创建者模式。
Director
Director 类起到封装作用,避免高层模块深入到建造者内部的实现类。导演类可以有多个,根据项目的实际情况来决定使用哪个。