Design pattern

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

Implementazione in C#

La prima classe implementata è la Abstract Factory:

si tratta di una classe astratta (tutti i metodi sono astratti). Al suo interno sono definiti due metodi astratti (che dovranno essere implementati dalle classi che la andranno ad implementare).

La seconda classe da implementare è la Concrete Factory, la classe che implementa l’Abstract Factory precedentemente definita.

Questa classe implementa al suo interno i metodi astratti della classe da cui deriva. Ovviamente all’interno del progetto possono essere definite più classi che implementano la Abstract Factory.

E’ il momento di definire la AbstratProduct (la classe che gli oggetti concreti dovranno implementare):

con la relativa classe concreta:

Una volta definiti tutti gli attori, manca soltanto la definizione della classe Client:

Si può notare come il costruttore abbia come parametro un oggetto che implementa la classe astratta ContinentFactory. Anche il tipo ritornato dalla factory è generico (Carnivore).

Pubblicato da

Andrea Merlin

Laureato in informatica, diversi corsi di specializzazione legati allo Sviluppo Software e alla Computer forensics. Appassionato di nuove tecnologie, amo la programmazione, la Business Intelligence e tematiche legate alla Privacy.Sempre alla ricerca di nuove idee, stimoli … e progetti da seguire!Amo trascorrere il tempo libero in Val Borbera, un piccolo angolo del Piemonte, in provincia di Alessandria.

Un commento su “Design Patterns – Abstract Factory”

I commenti sono chiusi.