La idea básica detrás de esto es crear control.
El cliente llama a un método
object Factory.GetObject(Spec spec)
Ahora la fábrica es una abstracción que impide que los clientes de codificar/bicarbonato en los constructores de clase en su código. En su lugar, llaman a la fábrica, la fábrica decide la subclase correcta de objeto para crear en función de la especificación.
Este enfoque es más extensible y resistente al cambio - en el futuro,
- se podría añadir un nuevo parámetro de ajuste con la especificación y manejarlo dentro del método de fábrica para devolver el LatestAndGreatestSubclass
- podría mejorar un objeto existente y devolver v2 de la subclase o intercambio anterior con una implementación completamente diferente: los clientes existentes y la interfaz de método de fábrica no tendrían que cambiar.
El comentario se hizo demasiado largo ... Así que tuve que publicarlo como respuesta.
¿Responde esto a su pregunta ?: http://stackoverflow.com/questions/2470290/why-do-static-create-methods-exist – Kobi
Duplicado exacto: http://stackoverflow.com/questions/69849/factory -pattern-when-to-use-factory-methods/2430719 # 2430719 – kyoryu