Separates the construction of a complex object from its representation so that the same construction process can create different representations.