gpdf - revisione 4

Alessio Frusciante tp@lists.linux.it
Tue Apr 15 15:36:02 2003


Oggi Alessio Dessi ha scritto:

> l'ho letto ... ma sinceramente non ho trovato nessuna argomentazione che
> giustifichi la scelta fatta, se non quelle del gusto personale
Dato che la discussione si e` ripresentata varie volte credo che sia utile
spiegare *che cosa* si intende per "factory".
Prima di tutto "factory" e` un design pattern. Si tratta di delegare ad
una classe (la "factory" appunto) la creazione di un oggetto. Ci sono tre
attori:

cliente
"factory"
prodotto

il cliente, invece di farsi il prodotto da solo, chiede alla "factory" di
crearlo.
Perche' si fa questo invece di crearlo direttamente?
Uno dei motivi e` che in questo modo e` possibile nascondere tutta una
serie di dettagli implementativi relativi alla creazione e
l'inizializzazione dell'oggetto. Questo significa che se un giorno il
prodotto cambia internamente, il cliente non deve cambiare nulla, e` solo
all'interno della "factory" che si devono effettuare modifiche.
Di solito si implementa una "abstract factory" da cui poi si derivano poi
classi concrete con cui si costruiscono gli oggetti. Se vi interessa
approfondire il tema potete guardare "Design patterns" di Gamma, Helm,
Johnson e Vlissides.
In CORBA (e COM) viene utilizzata questa tecnica in maniera estensiva ed
e` per questo che lo troviamo spesso nelle stringhe di GNOME.
Detto questo, non vedo quale altro termine in italiano possa essere piu`
calzante di fabbrica.

Ciao
Alessio