Design Patterns – Builder

Tipologia: Creazionale

Obiettivo: separare la creazione di un oggetto complesso dalla sua rappresentazione in modo da poter creare rappresentazioni differenti

Frequenza di utilizzo: Medio – Bassa

Diagramma UML - Builder
Diagramma UML – Builder

Componenti:

  • Builder: definisce l’interfaccia astratta per la creazione di parti di Product
  • Director: costruisce l’oggetto Product utilizzando l’interfaccia astratta definita in Builder
  • Product: è l’oggetto complesso da costruire. Concrete Builder costruisce la rappresentazione interna dell’oggetto Product e definisce il processo con cui verrà assemblato. Inoltre, include le classi e le interfacce degli elementi costituenti del risultato finale
  • Concrete Builder: costruisce e assembla le parti di Product implementando l’interfaccia definita all’interno di Builder. Tiene traccia delle rappresentazioni che sono state create. Definisce un’interfaccia per ottenere Product.

Continua a leggere Design Patterns – Builder

Design Patterns – Abstract Factory

Tipologia: Creazionale

Obiettivo: Fornire un’interfaccia per creare famiglie di oggetti correlati o dipendenti senza specificare le loro classi concrete

Frequenza di utilizzo: Alta

Componenti:

Abstract Factory - UML
Diagramma UML
  • Abstract Factory: dichiara un’interfaccia per operazioni che creano prodotti astratti
  • ConcreteFactory: implementa le operazioni per creare gli oggetti “prodotto” concreti
  • AbstractProduct: dichiara un’interfaccia per il tipo di dato “prodotto”
  • Product: è l’oggetto “prodotto” creato con la corrispondente classe factory astratta. Implementa l’interfaccia AbstractProduct
  • Client: utilizza le interfacce dichiarate dalle classi AbstractFactory e AbstractProduct

Continua a leggere Design Patterns – Abstract Factory