Builder Design Pattern - Java
When the construction of the class contains a large number of argument then this Design Pattern is preferred.
Builder Pattern, as the name suggest, it helps to reduce the complexity in Building Java Object.
public class Person {
private String firstname;
private String lastname;
private String address;
private int age;
private String city;
private String state;
public Person(String firstname, String lastname, String address,
int age, String city, String state) {
super();
this.firstname = firstname;
this.lastname = lastname;
this.address = address;
this.age = age;
this.city = city;
this.state = state;
}
}
In the above example, you can see, that the construction of the Person class has 6 arguments and few of them can be optional.
So we can create a new PersonBuilder class which will help to create the Object of the Person class.
public class PersonBuilder {
private String firstname;
private String lastname;
private String address;
private int age;
private String city;
private String state;
public PersonBuilder() {
}
public PersonBuilder setFirstname(String firstname) {
this.firstname = firstname;
return this;
}
public PersonBuilder setLastname(String lastname) {
this.lastname = lastname;
return this;
}
public PersonBuilder setAddress(String address) {
this.address = address;
return this;
}
public PersonBuilder setAge(int age) {
this.age = age;
return this;
}
public PersonBuilder setCity(String city) {
this.city = city;
return this;
}
public PersonBuilder setState(String state) {
this.state = state;
return this;
}
public Person build() {
return new Person(firstname, lastname, address, age, city, state);
}
}
So, now the Person class can be created as below :
If Person is with address and name then it can created as following
new PersonBuilder("firstname", "lastname").setAddress("my address").build();
If Person is with state and name then it can created as following
new PersonBuilder("firstname", "lastname").setState("guj").build();
When the construction of the class contains a large number of argument then this Design Pattern is preferred.
Builder Pattern, as the name suggest, it helps to reduce the complexity in Building Java Object.
In the above example, you can see, that the construction of the Person class has 6 arguments and few of them can be optional.
So we can create a new PersonBuilder class which will help to create the Object of the Person class.
So, now the Person class can be created as below :
If Person is with address and name then it can created as following
If Person is with state and name then it can created as following
Comments
Post a Comment