Builder: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Xqbot (discussione | contributi)
m Bot: Modifico: de:Erbauer (Entwurfsmuster); modifiche estetiche
Riga 1:
Nella [[Programmazione_orientata_agli_oggettiProgrammazione orientata agli oggetti|programmazione ad oggetti]], il '''Builder''' è uno dei pattern fondamentali, definiti originariamente dalla [[gang of four]] (combriccola dei quattro).
 
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 rappresentazioni.
Riga 9:
Un builder permette anche di costruire un oggetto passo-passo, cosa che si può verificare quando si fa il parsing di un testo o si ottengono i parametri da un'interfaccia interattiva.
== 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.
Riga 15:
* '''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.
 
== Diagramma delle classi ==
[[ImmagineFile:Builder.png]]
 
== 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 deve 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.
 
== Esempi ==
 
=== Java ===
<source lang="java">
/** "Prodotto" */
Riga 624:
 
[[bg:Строител (шаблон)]]
[[de:BuilderErbauer (Entwurfsmuster)]]
[[en:Builder pattern]]
[[es:Builder (patrón de diseño)]]