Builder
- explain the client interaction in the Builder pattern to make the final object
- describe how the Builder pattern isolates the client from the details of the complex object being built
- describe the considerations for defining the Builder class interface
- distinguish the process of construction from the product of construction
- describe how the Builder pattern decouples process and product.
- explain the issues with adding new part types to a Builder pattern and specify some mitigation strategies
- specify a mechanism for enforcing semantic constraints within a Builder pattern
- specify how the Builder pattern can be applied to building composite objects