Factory method
design pattern per l'implementazione del concetto di factories nella programmazione ad oggetti
Nella programmazione ad oggetti, il Factory Method è uno dei design pattern fondamentali, definiti originariamente dalla gang of four.

Come altri creational pattern, fornisce un metodo per istanziare un oggetto senza sapere a priori la sua esatta classe. Questo pattern raggiunge il suo scopo fornendo un'interfaccia per creare un oggetto, ma lascia che le sottoclassi decidano quale oggetto istanziare.
Struttura di un Factory Method
- Product: definisce l'interfaccia dell'oggetto creato dal factory method.
- ConcreteProduct: implementa l'interfaccia di Product.
- Creator: dichiara il factory method che ritorna un oggetto di tipo Product e lo può chiamare per creare un oggetto di tipo Product; il creator può definire un'implementazione del factory method che ritorna un oggetto ConcreteProduct di default.
- ConcreteCreator: ridefinisce il factory method per tornare un'istanza di un ConcreteProduct
Funzionamento
Il Creator si affida alle sottoclassi per quanto riguarda la definizione del factory method, cosicché esso ritorni un'istanza appropriata del Product.
Il codice tratta solo con l'interfaccia e con nessuna classe concreta.