/**
* Created by chengkang
* 2018/9/19 下午4:03
*/
public class User {
private final String name;//required
private final int year;//optional
private final int sexNum;//optional
private final String job;//optional
public static class Builder{
private final String name;//required
private int year = 0;//optional
private int sexNum = 0;//optional
private String job = "";//optional
public Builder(String name){
this.name = name;
}
public Builder year(int val){
year = val;
return this;
}
public Builder sexNum(int val){
sexNum = val;
return this;
}
public Builder job(String val){
job = val;
return this;
}
public User build(){
return new User(this);
}
}
private User(Builder builder){
name = builder.name;
year = builder.year;
job = builder.job;
sexNum = builder.sexNum;
}
public static void main(String[] args) {
User user = new Builder("ck").year(24).sexNum(1).job("IT").build();
System.out.println(user.name);
System.out.println(user.year);
System.out.println(user.sexNum);
System.out.println(user.job);
}
}
遇到多个构造器参数时要考虑用构建器
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 静态工厂和构造器有一个共同的局限性:它们都不能很好地扩展到大量的可选参数。如果一个构造器的参数有10,11,12,...
- 静态工厂方法和构造器的共同缺点或者局限性就是:对于存在大量可选参数的类中,其扩展性都不是很好。构建器(Builde...
- 当一个类中的部分参数可选,部分参数必填的时候,我们会如何写这个类呢 使用构建器 构造器调用会使用很多我们根本不会用...
- 方法一是采用重叠构造器模式,缺点很明显,当参数很多时,需要的构造器要非常多,而且代码不易阅读。 方法二是采用Jav...