最近重新翻看Effective Java一书,并且将阅读中的觉得重要的地方记录与此,方便日后浏览。
考虑用静态工厂方法代替构造器
- 静态工厂方法有名称:当一个类中有众多只是参数列表不同的构造器时很容易造成混淆,而采用静态工厂方法则可以声明不同名称的方法并返回对应的构造器来解决这一问题。
- 不必每次调用的时候都新建一个实例。
- 可以返回原来返回类型的任意子类型的对象。
- 创建参数化实例的时候使得代码更加的简洁。
遇到多个构造器参数的时候要考虑构建器
当一个类中有着大量的可选参数时,常规做法下创建实例时会存在大量的数据组合的可能,例如
public class Person{
//required
private String name;
private int age;
private Gender gender;
//not required
private String phoneNumber;
private String emailAddress;
public Person(String name, int age, Gender gender){
this.name = name;
this.age = age;
this.gender = gender;
}
public Person(String name, int age, Gender gender,String phoneNumber){
this.name = name;
this.age = age;
this.gender = gender;
this.phoneNumber = phoneNumber;
}
...
}
可以清楚地发现,当可选的属性越来越多时,类中同时会新加入更多的构造方法来满足实现创建不同参数的新的实例。而如果使用Builder模式即可得到简化。可以在类上采用lombok插件的@Builder注解来实现。
网友评论