建造者模式(Builder Pattern)使用多个简单的对象一步一步构建成一个复杂的对象。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。
一个 Builder 类会一步一步构造最终的对象。该 Builder 类是独立于其他对象的。
将一个复杂对象的构建与它的表示分离,使同样的构建过程可以创建不同的表示
结构图
角色与理解
- 建造者模式主要包含如下几个角色:
- Builder (抽象建造者):构建产品对象部件方法的抽象接口,可以是接口也可以是抽象类,供指挥者使用;方法包含两类bulidX()与getResult()方法
- ConcreteBuilder (具体建造者):实现抽象建造者接口,一个具体建造者对应一中具体的产品对象
- Product (产品角色):建造者模式最终产物
- Director (指挥者):又称为导演类,它负责安排产品对象的各个部件的建造顺序
- 抽象建造者提供抽象建造部件方法,具体建造者实现这些抽象方法,指挥者调用这些抽象方法,完成构建同样构建过程但是不同实现的对象的建造
- 建造者模式与抽象工厂模式的区别是前者是建造一个完整的复杂产品,而后者是一系列产品,前者像汽车组装厂,后者像汽车配件生产厂
核心代码