+ 1
Can anyone suggest a good, real world example of the builder design pattern?
Wondering if someone could suggest a good example of the builder design pattern, so one could get grasp of the concept.
2 Answers
+ 2
Suppose you want to create a Person object. That person has a number of different things about them we care about, their name, age, weight, height, gender, and maybe some other stuff as well. To create the object, our constructor would have to have a bunch of parameters and it would be difficult to read. Something like this:
Person bob = new Person("Bob", 38, 180, 72, Gender.MALE);
Instead, we like to use a Builder:
Person bob = Person.builder()
.setName("Bob")
.setAge(38)
.setWeight(180)
.setHeight(72)
.setGender(Gender.MALE)
.build();
In the builder variant, we can easily see all of the things we have set and it's much clearer.
Using a factory would also be just like the constructor.
Also, a Builder could be used multiple times if only one
or two values change between the build calls.
Hope that helps!
+ 1
I just built a version of this in C++ for your reference:
https://code.sololearn.com/cvUIq31Ivg0k/?ref=app