【java】EffectiveJava建造者模式介绍

建造者模式

1
new OneObject.Builder(xx).aa(aa).bb(bb)....

便于避免构造函数过长以及JavaBean模式线程不安全导致的问题
1、构造函数过长
classA有三个变量a,b,c
构造函数

1
2
3
4
classA(int a, int b, int c) {
this.a=a;
...
}

当只要初始化对象时只要赋值其中一个变量时,这种构造函数就显得很冗长且容易搞错位置
2、JavaBean模式

1
2
3
ClassA A = new ClassA();
A.setA(xx);
...

这样会存在初始化类后,不能保证在set方法时类原状态与set时状态一致

序列化类后修改该类容易出现不兼容的问题
单例类实现序列化后就不再是单例