java 构造者模式
在了解之前,先假设有一个问题,我们需要创建一个对象,属性有name,age,sex,note等属性,如果每一个属性都可以为空,也就是说我们可以只用一个name,也可以用一个age,name,或者一个sex,note,或者其他任意的赋值来创建对象,这时该怎么构造?
难道我们写4个1个输入的构造函数,6个2个输入的构造函数…吗?这个时候就需要用到Builder模式了。给个例子,大家肯定一看就懂:
构造对象代码块
public class BuildMode {
private String name;
private int age;
private String sex;
private String note;
private BuildMode(BuildAttributes buildAttributes){
this.name = buildAttributes.name;
this.age = buildAttributes.age;
this.sex = buildAttributes.sex;
this.note = buildAttributes.note;
}
public static class BuildAttributes{
private String name;
private int age;
private String sex;
private String note;
public BuildAttributes setName(String name){
this.name = name;
return this;
}
public BuildAttributes setAge(int age){
this.age = age;
return this;
}
public BuildAttributes setSex(String sex){
this.sex = sex;
return this;
}
public BuildAttributes setNote(String note){
this.note = note;
return this;
}
public BuildMode build(){
return new BuildMode(this);
}
}
@Override
public String toString() {
return "BuildMode{" +
"name='" + name + ''' +
", age=" + age +
", sex='" + sex + ''' +
", note='" + note + ''' +
'}';
}
}
调用代码块
public static void main(String[] args) {
// 调用静态内部类的普通方法需要new出一个静态内部类对象:new BuildMode.BuildAttributes().build();
// PS:如果是调用静态内部类的静态方法是不需要的,假如build方法是静态的:BuildMode.BuildAttributes.build();
BuildMode buildMode1 = new BuildMode.BuildAttributes().setName("张三").build();
System.out.println(buildMode1);//BuildMode{name='张三', age=0, sex='null', note='null'}
BuildMode buildMode2 = new BuildMode.BuildAttributes().setName("张三").setAge(1).setSex("男").setNote("没有李四").build();
System.out.println(buildMode2);//BuildMode{name='张三', age=1, sex='男', note='没有李四'}
}
最后
以上就是包容柜子最近收集整理的关于java 构造者模式java 构造者模式的全部内容,更多相关java内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复