Finalmente, comencé a tratar seriamente de aprender algunos patrones básicos (muy tarde en la carrera, pero esa es una historia diferente), estoy tratando de entender las diferencias entre el patrón de fábrica y la fábrica abstracta.
¿Cuáles son las diferencias clave entre estos dos patrones?
Entiendo que el Método Factory crea objetos a través de la herencia y Abstract Factory lo hace a través de la composición de objetos, pero desde un punto de vista práctico, todavía tengo problemas para visualizar exactamente cómo funcionan.
design-patterns
factory-method
Phil.Wheeler
fuente
fuente
new
no es un método (en algunos sistemas de objetos, ciertamente comunes).Respuestas:
El Método de Fábrica generalmente se clasifica por una declaración de cambio donde cada caso devuelve una clase diferente, usando la misma interfaz raíz para que el código de llamada nunca necesite tomar decisiones sobre la implementación.
Piense en una fábrica de validadores de tarjetas de crédito que devuelve un validador diferente para cada tipo de tarjeta.
La Fábrica abstracta es donde tiene múltiples clases de fábrica concretas (no Métodos de fábrica) derivadas de una interfaz que puede devolver muchos tipos diferentes de diferentes métodos.
Piense en un administrador de juegos de ajedrez con una clase diferente para cada conjunto de reglas variantes.
Una Fábrica abstracta, al igual que una Estrategia, a menudo se selecciona utilizando un Método de fábrica, pero no es necesario combinarlas, por lo que es su propio patrón.
fuente