引言
有许多开源框架在编译时通过注解信息生成新的源文件,已到达简化样板代码的书写,比如说典型的Builder模式,或者实现框架的功能的桥接代码。因为我使用编译时注解只是想要简化样板代码,下面我就以Builder模式作为示例。
Builder模式
Builder模式主要是解决创建对象过程中的必须参数和非必须参数的的传入,以及以及传入过程中导致对象的中间状态暴露在外面。下面是简单Builder模式的实现:
#User.java
package Model.builder;
public class User{
//定义为final 的属性必需在构造函数中初始化
private final String id; //必需
private final String sex; //必需
private final String name; //必需
private String location; //非必需
private String email; //非必需
private User(String id,String sex,String name){
this.id= id ;
this.name =name ;
this.sex = sex;
}
private User(User origin){
this.id = origin.id;
this.sex = origin.sex;
this.name = origin .name;
this.location = origin.location;
this.email = origin.email;
}
public String getId() {
return id;
}
public String getSex