建造者模式是日常开发中比较常见的设计模式,它的主要作用就是将复杂事物创建的过程抽象出来,该抽象的不同实现方式不同,创建出的对象也不同。
建造者模式分为两种,一种为经典建造者模式,另一种为变种建造者模式。
经典Builder模式

从上述UML图可以看到,经典Buider模式中有四个角色:
- 要建造的产品Product – 组装的电脑
 - 抽象的Builder – 装CPU、内存条、硬盘等抽象的步骤
 - Builder的具体实现ConcreteBuilder – 对上述抽象步骤的实现,比如装i5CPU、8G内存条、1T硬盘
 - 使用者Director – 电脑装机人员
 
经典Builder模式代码示例:
Computer实体类
1  | public class Computer {  | 
抽象Builder类
1  | public interface ComputerConfigBuilder {  | 
具体实现类
1  | public class ConcreteComputerConfigBuilder implements ComputerConfigBuilder {  | 
组装Computer的类(这个类可有可无,如果属性之间没有确定的前后关系,可以不要此类,且此类的createComputer方法通用性也不好)
1  | public class Director {  | 
创建Computer的测试类
1  | Director director = new Director(); // 创建装机人员  | 
变种Builder模式
变种Builder模式代码示例:
1  | public class Person {  | 
Person对象的创建:
1  | Person person = new Person.Builder("zhangsan","male")  | 
实际开发过程中使用变种Builder模式比较多。