在经过一段时间的开发或是看一些好的框架的源码,我们就会总结一些好的开发小技巧,这些小技巧可以使我们开发出来的代码看起来更优雅一些。
在这里就简单说一下创建对象的一个小技巧,当然这个小技巧并一定适合你吧。
在创建对象时,比如说对象的属性很多,而且要根据不同的属性去创建不同的对象,这个时候我们就要重载很多构造器。
例如下面的代码:
例如上面的代码我们要写很多构造器,这样会很烦。
因此我们就可以创建一个专门来构建Student对象这样的一个类:StudentBuilder
因此在使用这个类创建Student对象的时候就可以这样使用
这里还使用了另外一个小技巧,就是在StudentBuilder这个类中所有的set方法都返回这个类的本身,这样我们就可以使用链式的方法去调用方法。
在开发中我们要善于思考,善于总结,善于观察,这样我们就会总结更多的技巧,我们开发出来的代码就会更优雅。
在这里就简单说一下创建对象的一个小技巧,当然这个小技巧并一定适合你吧。
在创建对象时,比如说对象的属性很多,而且要根据不同的属性去创建不同的对象,这个时候我们就要重载很多构造器。
例如下面的代码:
package com.unis.object;
public class Student {
private String name;
private int age;
private String code;
private boolean sex;
public Student(String name) {
this.name = name;
}
public Student(String name,int age){
this(name);
this.age =age;
}
public Student(String name,int age,String code,boolean sex){
this(name,age);
this.code = code;
this.sex = sex;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public boolean isSex() {
return sex;
}
public void setSex(boolean sex) {
this.sex = sex;
}
}
例如上面的代码我们要写很多构造器,这样会很烦。
因此我们就可以创建一个专门来构建Student对象这样的一个类:StudentBuilder
package com.unis.object;
public class StudentBuilder {
private String name;
private int age;
private String code;
private boolean sex;
public Student build(String name){
Student s = new Student();
s.setSex(sex);
s.setCode(code);
s.setName(name);
s.setAge(age);
return s;
}
public StudentBuilder setDefaultName(String name) {
this.name = name;
return this;
}
public StudentBuilder setDefaultAge(int age) {
this.age = age;
return this;
}
public StudentBuilder setDefaultCode(String code) {
this.code = code;
return this;
}
public StudentBuilder setDefaultSex(boolean sex) {
this.sex = sex;
return this;
}
}
因此在使用这个类创建Student对象的时候就可以这样使用
StudentBuilder sb = new StudentBuilder();
sb.setDefaultSex(false).setDefaultAge(20).setDefaultCode(null);
Student s = sb.build("zzg");
System.out.println(s.getAge());
这里还使用了另外一个小技巧,就是在StudentBuilder这个类中所有的set方法都返回这个类的本身,这样我们就可以使用链式的方法去调用方法。
sb.setDefaultSex(false).setDefaultAge(20).setDefaultCode(null);
在开发中我们要善于思考,善于总结,善于观察,这样我们就会总结更多的技巧,我们开发出来的代码就会更优雅。