Define una interfaz para crear un objeto, pero le permite a las subclases decidir cuál clase instanciar. El método abtracto le permite a una clase creadora abstracta delegar la instanciación a las subclases.
Diagrama
¿Cuándo usar este patrón?
- Se necesita desligar el cliente con el tipo de la clase concreta, esto también aplica al Abstract Factory.
- La clase creadora necesita delegar a sus clases derivadas la responsabilidad de escoger qué clase instanciar.
- En situaciones donde la lógica de creación de un objeto en la clase creadora concreta es más complicada que decidir cuál objeto instanciar según uno o dos parámetros.
- La complejidad de creación de un objeto en la clase creadora concreta puede cambiar con el tiempo.