package heapStark.blogCode.designPattern.builder;
public class BaseBean {
private int age;
private String name;
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "BaseBean{" +
"age=" + age +
", name='" + name + '\'' +
'}';
}
public static class BaseBuilder<T extends BaseBuilder,P extends BaseBean>{
protected P bean;
public BaseBuilder(P bean) {
this.bean = bean;
}
public int getAge() {
return bean.getAge();
}
public T setAge(int age) {
this.bean.setAge(age);
return (T)this;
}
public String getName() {
return bean.getName();
}
public T setName(String name) {
this.bean.setName(name);
return (T)this;
}
public P builder(){
return bean;
}
}
}
子类
package heapStark.blogCode.designPattern.builder;
public class Bean extends BaseBean {
private String id;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
@Override
public String toString() {
return "Bean{" +
"id='" + id + '\'' +
"} " + super.toString();
}
public static class BeanBuilder extends BaseBean.BaseBuilder<BeanBuilder,Bean>{
public BeanBuilder(Bean bean) {
super(bean);
}
public BaseBuilder setId(String id) {
this.bean.setId(id);
return this;
}
}
}