package com.test.DPs.ChuangJian.Builder;
/**
* 创建型:Builder-建造者(生成器)
*/
public class Builder{
static class Student{
String name = null;
String sex = null;
String school = null;
int number = -1;
int age = -1;
/**
* 建造者(生成器)-Builder
* 用途:讲一个复杂对象的构建与他的表示分离,使得同样的构建过程可以创建不同的表示。
*
* 理解
* 区分对象构建之前与之后初始化。类设计,而非客户端。。构建之前,将对象构建过程与表示分离。
*/
static class StudentBuilder{
String name = null;
String sex = null;
String school = null;
int number = -1;
int age = -1;
public StudentBuilder setName(String name){
this.name = name;
return this;
}
public StudentBuilder setSex(String sex){
this.sex = sex;
return this;
}
public StudentBuilder setSchool(String school){
this.school = school;
return this;
}
public StudentBuilder setNumber(int number){
this.number = number;
return this;
}
public StudentBuilder setAge(int age){
this.age = age;
return this;
}
public Student build(){
return new Student(this);
}
}
public Student(StudentBuilder builder){
this.age = builder.age;
this.name = builder.name;
this.number = builder.number;
this.school = builder.school ;
this.sex = builder.sex ;
}
}
public static void main(String[] args){
Student a = new Student.StudentBuilder().setAge(12).setName("Jack").build();
Student b = new Student.StudentBuilder().setSchool("sc").setSchool("Mian").setName("Li").build();
}
}