Estaba trabajando con el código de Java que supuestamente usa el patrón Factory, pero no estoy completamente convencido por el patrón.Patrón de fábrica en Java
Mi código hace esto:
// the factory
class SomeFactoryImpl {
Set<SomeClass> getSomeListOfObjects();
}
Y en alguna parte del código:
{ ...
SomeFactory factory = new SomeFactoryImpl();
Set<SomeClass> list = factory.getSomeListOfObjects();
}
El punto que estoy pensando es, si las clases de fábrica no tienen un método estático crear() , entonces uno necesitará instanciar una fábrica, que IMO debería ser tan complejo como instanciar un objeto en sí mismo.
No considero suficiente el argumento de que una fábrica de este tipo puede devolver colecciones de objetos para producir. Siento que puede haber soluciones más limpias, si es necesario crear una instancia de fábrica antes de crear objetos de fábrica.
Creo que es mejor si el método create es un método estático de la clase de fábrica. Pero también estoy seguro de que mi opinión no es completamente "correcta".
Entonces, ¿la comunidad SO puede dar ejemplos donde crear instancias de un objeto Factory es mejor que usar métodos estáticos de creación?
Además, me encontré con una respuesta a una pregunta similar, que se enumeran estos enlaces y la respuesta: lo que necesito saber con claridad la diferencia entre FactoryMethodPattern, FactoryMethod y CreationMethod con ejemplos de código.
Es bastante común en Java APIs como TRAX tener un método newInstance estática() de la clase de fábrica (por ejemplo TransformerFactory.newInstance()), y luego llama a createTransformer() en el resultado. – skaffman