Builder Design Pattern

Builder
  Separates object construction from its representation