Builder is a creational design pattern that lets you construct complex objects step by step. The pattern allows you to produce different types and representations of an object using the same construction code. source
In this example Director will instruct SandwichBuilder to make different sizes of sandwich.