Il design pattern Builder, nella programmazione ad oggetti, separa la costruzione di un oggetto complesso dalla sua rappresentazione cosicchè il processo di costruzione stesso possa creare diverse rappresenazioni.

L'algoritmo per la creazione di un oggetto complesso è indipendente dalle varie parti che costituiscono l'oggetto e da come vengono assemblate.

Struttura di un Builder

  • Builder: specifica l'interfaccia astratta che crea le parti dell'oggetto Product.
  • ConcreteBuilder: costruisce e assembla le parti del prodotto implementando l'interfaccia Builder; definisce e tiene traccia della rappresentazione che crea.
  • Director: costruisce un oggetto utilizzando l'interfaccia Builder.
  • Product: rappresenta l'oggetto complesso e include le classi che definiscono le parti che lo compongono, includendo le interfacce per assemblare le parti nel risultato finale.