The builder pattern is an alternative to construct complex object. This can be used only when you want to build different immutable object in the same building process.
It allows object creation using method chaining and more flexible object creation.
Example:
Let's take Person as data model
It allows object creation using method chaining and more flexible object creation.
Example:
Let's take Person as data model
package com.javaweblog.build.pattern;
public class Person {
private String firstName;
private String lasteName;
private int age;
private String gender;
public Person(String firstName, String lasteName,
int age, String gender){
this.firstName = firstName;
this.lasteName = lasteName;
this.age = age;
this.gender = gender;
}
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLasteName() {
return lasteName;
}
public void setLasteName(String lasteName) {
this.lasteName = lasteName;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
}
package com.javaweblog.build.pattern;
public class PersonBuilder {
private String firstName;
private String lasteName;
private int age;
private String gender;
public PersonBuilder(String firstName, String lasteName,
int age, String gender){
this.firstName = firstName;
this.lasteName = lasteName;
this.age = age;
this.gender = gender;
}
public PersonBuilder(){
}
public PersonBuilder setFirstName(String firstName) {
this.firstName = firstName;
return this;
}
public PersonBuilder setLasteName(String lasteName) {
this.lasteName = lasteName;
return this;
}
public PersonBuilder setAge(int age) {
this.age = age;
return this;
}
public PersonBuilder setGender(String gender) {
this.gender = gender;
return this;
}
public Person build(){
return new Person( firstName, lasteName, age,
gender);
}
}
public class BuilderTest {
public static void main(String[] args) {
PersonBuilder builder = new PersonBuilder();
Person p1 = builder.setFirstName(
"Suri").setGender("male").build();
Person p2 = builder.setFirstName(
"Suren").setAge(34).build();
}
}
Comments
Post a Comment