Skip to content

Instantly share code, notes, and snippets.

@NsAveek
Created September 11, 2018 15:19
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save NsAveek/5d1d42b0c90f161a833978528b402c62 to your computer and use it in GitHub Desktop.
Save NsAveek/5d1d42b0c90f161a833978528b402c62 to your computer and use it in GitHub Desktop.
Builder Pattern example
public class Student {
private String name;
private String address;
private String email;
private String phoneNumber;
private String passportNumber;
private int age;
private Student(final StudentBuilder builder) {
name = builder.name;
address = builder.address;
email = builder.email;
phoneNumber = builder.phoneNumber;
passportNumber = builder.passportNumber;
age = builder.age;
}
@Override
public String toString() {
return "Student{" +
"name=" + name +
", address='" + address + '\'' +
", email='" + email + '\'' +
", phoneNumber=" + phoneNumber +
", passportNumber='" + passportNumber + '\'' +
", age='" + age + '\'' +
'}';
}
public static class StudentBuilder {
private String name;
private String address;
private String email;
private String phoneNumber;
private String passportNumber;
private int age;
public StudentBuilder(String name, String address, String email){
this.name = name;
this.address = address;
this.email = email;
}
public StudentBuilder setPhoneNumber(final String phoneNumber) {
this.phoneNumber = phoneNumber;
return this;
}
public StudentBuilder setPassportNumber(final String passportNumber) {
this.passportNumber = passportNumber;
return this;
}
public StudentBuilder setAge(final int age) {
this.age = age;
return this;
}
public Student create() {
return new Student(this);
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment