java开发小技巧之创建对象

在经过一段时间的开发或是看一些好的框架的源码,我们就会总结一些好的开发小技巧,这些小技巧可以使我们开发出来的代码看起来更优雅一些。

在这里就简单说一下创建对象的一个小技巧,当然这个小技巧并一定适合你吧。

在创建对象时,比如说对象的属性很多,而且要根据不同的属性去创建不同的对象,这个时候我们就要重载很多构造器。
例如下面的代码:

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);


在开发中我们要善于思考,善于总结,善于观察,这样我们就会总结更多的技巧,我们开发出来的代码就会更优雅。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值