Builder
Nella programmazione ad oggetti, il Builder è uno dei pattern fondamentali, definiti originariamente dalla gang of four.
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.
Funzionamento
Il Client crea un oggetto Director e lo configura con gli oggetti Builder desiderati. Il Director notifica al Builder se una parte del prodotto debba essere costruita, il Builder riceve le richieste dal Director e aggiunge le parti al prodotto. Il Client riceve il prodotto dal Builder.
Questo consente di variare la rappresentazione interna del prodotto, isolare il codice per la costruzione e la rappresentazione e controllare in modo preciso il processo di costruzione.