The builder design pattern is used to create a separation between object instantiation and representation. The purpose is to permit different representations with the same instantiation process.
In this context, representation refers to the description of an object.
This design pattern is typically only used for complex objects. Using the builder design pattern, complex objects are created in separate steps. This allows us to build different objects based on the building steps taken.
We will look at an example use case, the UML class diagram, and the source code that's necessary to implement the builder design pattern for this scenario.