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