使用场景

1.对象参数多,构造器创建会很长,可读性不好而且容易搞错,导致BUG。
2.参数需要进行逻辑校验,逻辑无处安放。

如何实现

1.需要创建的类构造器私有。
2.在Builder中创建一个public的构造函数,参数为创建的类中必填的那些参数
3.在Builder中创建设置函数,对那些可选参数进行赋值,进行校验
4.Builder中创建一个build()方法,在其中构建对象的实例并返回

和工厂的区别

工厂模式是用来创建不同但是相关类型的对象(继承同一父类或者接口的一组子类),由给定的参数来决定创建哪种类型的对象。建造者模式是用来创建一种类型的复杂对象,通过设置不同的可选参数,“定制化”地创建不同的对象。