Factory method
El Factory Method és un patró de disseny del Software. Consisteix a utilitzar una classe constructora (semblant a l'Abstract Factory) abstracta amb uns quants mètodes definits i uns altres d'abstractes: el dedicat a la construcció dels objectes d'un subtipus d'un tipus determinat. És una simplificació de l'Abstract Factory, on la classe abstracta té mètodes concrets que en fan servir alguns dels abstractes; segons usem una o altra filla d'aquesta classe abstracta, tindrem un comportament o un altre.
Estructura
modificaLes classes principals d'aquest patró són el creador i el producte. El creador necessita crear instàncies de productes, però el tipus concret de producte no ha de ser forçat en les subclasses del creador, perquè aleshores les possibles subclasses del creador haurien de poder especificar subclasses del producte a utilitzar.
La solució per fer això és utilitzar un mètode abstracte (el mètode de la fàbrica) que es defineix en el creador. Aquest mètode abstracte es defineix perquè torni el producte. Les subclasses del creador poden sobreescriure aquest mètode per tornar les subclasses apropiades del producte.
Exemples de codi (Java)
modifica// Definim la classe abstracte creadora
public abstract class Creator{
// Operació que realitza
public Product anOperation() {
Product aProduct = factoryMethod();
return aProduct;
}
// Definim el mètode abstracte
protected abstract Product factoryMethod();
}
Ara definim el creador concret.
public class ConcreteCreator extends Creator{
protected Product factoryMethod() {
return new ConcreteProduct();
}
}
I definim el producte i la seva implementació concreta.
public interface Product{
public void operacio();
}
public class ConcreteProduct implements Product{
public void operacio(){
System.out.println("Una operació d'aquest producte");
}
}
i un exemple d'ús :
public static void main(String args[]){
Creator aCreator;
aCreator = new ConcreteCreator();
Product producte = aCreator.anOperation();
producte.operacio();
}
Enllaços externs
modifica- Patrons de Fabricació: Fábricas de Objetos - Leon Welicki (castellà)
- Exemples en Java en Diagrama UML Arxivat 2009-09-26 a Wayback Machine. (castellà)
- Patró Factory Method explicat en vídeo, article de Lucas Ontivero on explica, en un vídeo de 9 minuts i 53 segons, el patró Factory Method (nivell bàsic) (castellà)