Il Builder, ovvero il “costruttore” (da non confondersi con il metodo), è uno dei principali design pattern formalizzati dalla gang of four e si occupa di separare la costruzione di un oggetto dalla sua rappresentazione, in modo che il processo di costruzione degli oggetti sia in grado di creare molteplici rappresentazioni dello stesso.
Lo scopo dell’applicazione del design pattern Builder, è principalmente quello di separare il processo di creazione di un oggetto complesso dal flusso applicativo del client. Seguendo questa logica, si realizza una doppia astrazione: da una parte si rende indipendente il flusso di creazione e controllo di un oggetto dal client, dall’altra, l’algoritmo per la creazione di un oggetto è indipendente dalle varie parti che lo costituiscono e da come esse vengono assemblate.
Il design pattern Builder si rende applicabile quando
è necessario costruire un oggetto step by step
è auspicabile isolare il processo di creazione e rappresentazione di un oggetto
è necessario monitorare le fasi del processo di creazione
Queste sono le principali conseguenze dell’applicazioni del pattern:
Isolamento delle classi che costituiscono le parti (step): come già detto in precedenza, seguendo questo pattern, si isolano e si rendono indipendenti dall’algoritmo di creazione dell’oggetto, le classi deputate all’implementazione delle parti che lo costituiranno.
Separazione della logica di creazione degli oggetti dall’applicazione: è lo scopo principale del pattern.
Passando attraverso il Director, verrà richiamato il Builder, l’interfaccia deputata ad assemblare le varie parti dell’oggetto da creare la quale, a sua volta, delegherà al ConcreteBuilder il lavoro vero e proprio, definendolo nei suoi aspetti e tenendone traccia. Il Product, l’oggetto finale che verrà costruito, conterrà al suo interno le classi che costituiscono le parti che lo compongono.