JavaScript: il pattern Factory

JavaScript: il pattern Factory

Simile ad altri pattern creazionali, il pattern Factory gestisce la creazione di oggetti (che possono essere visti come i prodotti di questo pattern) senza dover specificare la classe esatta dell'oggetto da creare.

Nello specifico, questo pattern suggerisce una definizione di interfaccia per creare un oggetto con cui si permette alle sottoclassi di decidere quale classe instanziare. Questo pattern gestisce il problema definendo un metodo completamente separato per la creazione di oggetti e che le sottoclassi possono sovrascrivere per specificare il tipo di oggetto che verrà creato.

Questo può rivelarsi utile specie quando il processo di creazione è complesso, per esempio se dipende molto dalle impostazioni dei file di configurazione.

Il pattern si trova spesso in quei framework dove il codice della libreria può aver bisogno di creare oggetti di un particolare tipo che poi possono essere estesi da altri script che usano il framework.

Esempio:


var Car = (function() {
   var Car = function (model, year, miles){
       this.model = model;
       this.year   = year;
       this.miles = miles;
   };
   return function (model, year, miles) {
       return new Car(model, year, miles);
   };
})();

var civic = new Car("Honda Civic", 2009, 20000);
var mondeo = new Car("Ford Mondeo", 2010, 5000);
Torna su