The Builder pattern is an object creation pattern for creating instances of classes that have a large number of potential optional parameters. For classes like these, with many optional parameters, we could rely on a Builder class to provide an improved API for constructing instances of the class. This API enables us to build different representations of our class using a common API.
In this section, we'll explore both what a traditional Builder might look like and how Kotlin enables us to simplify our concept of a Builder in many cases by leveraging default parameter values and named arguments.