Builder Design Pattern

A class, module, or other language construct for specifying how to configure and build an object before the actual object instantiation.