Created
September 11, 2018 15:19
-
-
Save NsAveek/5d1d42b0c90f161a833978528b402c62 to your computer and use it in GitHub Desktop.
Builder Pattern example
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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