di: Gabriele Farina 01 Settembre 2006
Il pattern Factory è un altro dei pattern più utilizzati nello sviluppo object oriented. Come Abstract Factory, analizzato in un articolo precedente, fa parte del gruppo dei pattern creazionali ed ha come scopo quello di fornire una classe capace di creare differenti implementazioni di un solo prodotto astratto.
Nella pratica risulta molto utile nelle situazioni in cui un metodo deve restituire istanze di classi diverse in base ad alcuni parametri passati. Grazie a PHP, che non ha un forte controllo sui tipi di dato, le istanze restituite dalla factory possono derivare da qualunque classe mentre la definizione del pattern richiede che tutte le classi generate da una factory implementino una medesima interfaccia.
Anche se non è necessario, è comunque importante seguire questo concetto per avere una totale congruenza con il pattern e per evitare problemi a chi utilizzerà (anche noi stessi) la nostra implementazione: se un metodo restituisce un oggetto, è bene che questo possa essere utilizzato indipendentemente dal suo comportamento specifico.
Il pattern Factory è strutturato da quattro elementi che interoperano tra loro:
In generale si opera specificando Creator come una classe astratta e fornendo un'implementazione del metodo factory che restituisce l'istanza di uno dei ConcreteProduct definiti (che verrà stabilito come prodotto di default). Poi si definiscono varie implementazioni dell'interfaccia Product ed eventualmente varie implementazioni dell'interfaccia Creator che possono generare set di ConcreteProduct differenti. L'obiettivo è comunque quello di lasciare lasciar decidere quale istanza di ConcreteProduct creare al ConcreteCreator.
Vediamo un esempio della struttura UML utilizzata per descrivere questo pattern:
Figura 1: la struttura UML del pattern Factory

Guida Yii FrameworkCome creare applicazioni Web in modo semplice e veloce con il... |
Guida Zend FrameworkDiventate professionisti dello sviluppo Web. Zend Framework è lo... |
Guida Applicazioni Facebook con PHPCome realizzare un'applicazione per Facebook. Dalle basi della... |
Ogni lunedì, direttamente nella tua e-mail: script, articoli, guide e tutorial su PHP, MySQL e Apache.
Iscriviti alla newsletter
|
|
Corso PHP per Webmaster11 Giugno 2012 a Milano |
|
|
Corso Google AdWords Base25 Giugno 2012 a Milano |
|
|
Corso Google AdWords Base05 Giugno 2012 a Roma |