Builder Design Pattern is a design pattern, which is used to create object from a complex or from a general object. Whenever someone creates a Builder Pattern, main class will be unaware about the pattern which means the creation of Builder Pattern is independent.
class UserFullName {
constructor(name) {
this.fullName = name
}
}
class UserBuilder {
constructor(name) {
this.user = new UserFullName(name);
}
setUsername(username) {
this.user.username = username;
return this;
}
setEmail(email) {
this.user.email = email;
return this;
}
setPassword(password) {
this.user.password = password;
}
}
Now we can create object based on property we have.
const user_builder = new UserBuilder('John Doe')
.setUsername('doe')
.setEmail('doe@gmail.com');
We can set username or email or password, they are optional in that case. Then the user_builder
or builder object will be,
UserBuilder {
user: UserFullName {
fullName: 'John Doe',
username: 'doe',
email: 'doe@gmail.com'
}
}
Advantages of Builder Design Pattern
- Allows you to create simple object from complex class.
- Allows you to vary internal representation of a class.
Disadvantages of Builder Design Pattern
- Requires creating a separate builder for each different type of class.
I am very glad to learn this. Thanks for share.
You are most welcome.
Amazing. thanks for share.