Builder Design Pattern
From JholJhapata
Builder pattern aims to "Separate the construction of a complex object". It was was introduced to solve some of the problems with Factory and Abstract Factory design patterns when the Object contains a lot of attributes.
In other words, it is used to construct a complex object step by step and the final step will return the object. The process of constructing an object should be generic so that it can be used to create different representations of the same object.