1.发现
在很多java语言的开源代码中经常会见到一个类中会有一个内部类“Builder”,而且Budiler这个类中会很多其他类的对象,并且进行初始化,但在本类中也会申明这些变量,这样做的好处到底在哪?起初猜测是为了链式赋值,现在想想确实挺傻的。
2.了解
Builder模式的形式是:
class A{
B b;
C c;
A(Builder builder){
b = builder.b;
c = builder.c;
}
class Builder{
B b;
C c;
Builder(){
}
public Builder setC(C c){
this.c = c;
}
public Builder setB(B b){
this.b = b;
}
}
}
刚开始的时候总是不知所云,为什么要这样去写尼,这样促使我去了解了一下它,使用builder类的一个好处就是不需要将每一个参数都在构造函数中去初始化。比如一个很复杂的类,需要在类中完成很多操作,需要多个类进行聚合,但是并不是每一个对象每一个使用情况下都需要使用。这样使用builder类是不是就可以我想传什么参数就传什么参数,不用进行每一种情况都去声明一个构造函数去使用吧。