类中有多个构造函数,因此很难决定在开发期间调用那一个的时候,请采用Creation Method(个人翻译为静态构建模式)方式
优点:
1:比构造函数能够更好的表达创建的实例的总类
2:避免了构造函数的局限,比如两个构造函数的参数数目和类型不能相同
3:更容易发现无用的创建代码
缺点:
创建方式是非标准的,有些类需要使用new实例化,有些需要使用静态构建模式.
-------------------------以上是书中原话
个人强烈推荐使用静态构建模式,尤其是优点的第2条,很优雅的解决了我下面例子中的问题
不可运行代码:
public class People {
private int age;
private int height;
public People(int age){
this.age=age;
}
public People(int height){
this.height=height;
}
}
使用构建模式后:
public class People {
private int age;
private int height;
public static People createPeopleByAge(int age){
this.age=age;
}
public static People createPeopleByHeight(int height){
this.height=height;
}
}对比一下两个对象,第二个对象的代码变得优雅而又实用了.而且逻辑清晰
其实还有几个优点:
1:当使用new初始化一个类的时候,类中的每个构造函数都会被遍历一遍,也就是构造函数越多,这个类实例化需要的时间越长.
2:我们现在很多人使用了编译器,有个代码提醒的功能.如果是静态方法,可以得到提醒,而不同的构造函数,我们必须去查api了.