Builder

Origin: GoF 95
Reason: Allow a client to construct a complex object, the product, by specifying only its type and content.
Synopsis: An interface or abstract class, the AbstractBuilder, defines a static method, getInstance that takes the product type and return a Concrete Builder. A Director calls methods of the Concrete Builder to build the product.
Example: An e-mail gateway transforms messages received in MIME format to specific formats for different e-mail systems. A message is composed of many parts/fields.
Solution:
AbstractBuilder Interface for building product objects. has methods "To", "From", etc..
ConcreteBuilder Implements AbstractBuilder for a specific e-mail system. say, UnixBuilder, Win95Builder
Director Calls methods of AbstractBuilder to transform a message.  
Client Calls method getInstance of AbstractBuilder.
Passes result to Director to get the product.
 
Product Object under construction, subparts are included. ConcreteBuilder sets representation and construction.  
See also: AbstractFactory
FactoryMethod
Prototype
creational pattern summary