builder和constructor区别
builder和constructor的区别分别是:
1、builder:既能保证像重叠构造器那样的安全,也能实现JavaBean模式那样的可读性。可以不必知道你的内部构造是怎样的,我可以直接使用Builder建造自己需要的客户端;代码清晰,易维护,易扩展;将构造和表示分离,降低耦合。
2、constructor:在constructor模式下,你提供第一个只有必要参数的构造器,第二个构造器有一个可选参数,第三个有两个可选参数,以此类推,最后一个构造器包含所有的可选参数。
但是在constructor中当一个类的参数多的情况下,使用重叠构造器模式客户端代码会很难编写。
使用build模式的步骤:
不直接生成想要的对象,而是让客户端利用所有必要的参数调用构造器(或者静态工厂),得到一个build对象。
然后让客户端在build对象上调用类似的setter方法来设置每个相关的可选参数,最后,客户端调用无参的build方法来生成不可变的对象。这个builder是它构建的静态成员类。