适合当一个对象的构造涉及这些场景时:
1. 存在一些方法,内部会根据不同传进值进行不同的执行顺序,产生不同的结果
2. 使用者可以传进不同数目、不同数值的零件(参数)得到不同的结果
3. 需要产生的结果所对应的类非常复杂,需要很多参数来初始化,并且很多参数有默认值
有2种常见的使用方式:
1. 创建Builder的抽象类;
创建继承自Builder的实现类,一般以结果类的名称为前缀;
创建一个Director类来组织使用Builder的实现类来创建结果类的过程。
这种创建方式,将Builder类、结果类以及使用前者构造后者的过程这3样东西分离开
2. 在结果类的内部创建一个静态内部类---Builder类;
在Builder类中设置一系列set方法或者调用一系列set方法;
这种set方法有返回值,返回结果类本身;
最后以create方法结尾,返回结果类对象。
这种创建方式更加地简单和常见,以链式的方式创建结果类对象
使用Builder模式可以实现一步步地创建一个复杂的对象,使得使用者在不知道内部细节的情况下更精细地控制对象地构造流程