Encapsulate the construction of a complex object behind an interface, so that the construction process can create different representations.
- The algorithm of the construction can vary
- Allow construction of different representation of the complex object
- Allows product representations to vary
- Centralization of construction code, which improves modularity
- More control in building process than other creational patterns, building in steps
- Abstract Factory: similar but the Builder constructs using steps, Abstract Factory is family-oriented
- Composite: what the Builder often builds