1、什么是Builder模式?
(1)对于复杂的对象,如果只是用构造方法创建的话,构造方法中会存在很多的逻辑,那么我们可以一步步有秩序构建它,从而降低复杂度;
(2)对于复杂的对象,使用者不必知道其内部是如何实现的清下,逐步构造需要的实例对象;
2、什么情况下使用Builder模式?
(1)将一个复杂对象的构建与它的表示分离,即相同的构造过程可以有不同表示;
(2)当有多个构造器且需要传入不同的参数表示不同的产品时(即可以弥补工厂模式等无法选择多参数的缺点)
(3)传入参数情况比较灵活且复杂的情况,或者说一开始不需要明确参数的情况。
(4)框架中很多Configuration配置都会用到Builder模式。
3、具体使用Builder例子
(1)以前经常通过不同构造器传入不同的参数构造不同复杂的对象,比如我们现在需要一个User的不同情况对象
- 只有id和name
- 有id、name、age
- 有id、name、age、address
public class User {
private int id;
private String name;
private int age;
private String address;
//不同的构造器传入不同的参数,创造不同的复杂的产品
public User(int id, String name) {