Nota: las preguntas se encuentran al final de la publicación.
He leído los otros hilos de stackoverflow con respecto a Abstract Factory vs Factory Method . Entiendo la intención de cada patrón. Sin embargo, no tengo clara la definición.
El Método de Fábrica define una interfaz para crear un objeto, pero permite que las subclases decidan cuáles instanciar. Un método de fábrica permite que las clases difieran la creación de instancias en subclases.
Por el contrario, una Fábrica abstracta proporciona una interfaz para crear familias de objetos relacionados o dependientes sin especificar sus clases concretas.
El Abstract Factory es muy similar al método de fábrica . He dibujado algunas clases de UML para ilustrar mi punto.
Nota:
- El diagrama es de www.yuml.com, por lo que no están perfectamente orientados. Pero es un servicio gratuito :).
- Los diagramas pueden no ser perfectos. Todavía estoy aprendiendo los patrones de diseño de GoF .
Método de fábrica
Abstract Factory (solo 1 miembro):
Fábrica abstracta (más miembros):
Preguntas:
- Si Abstract Factory solo tiene un creador y un producto, ¿sigue siendo el patrón Abstract Factory ? (una interfaz para crear familias)
- ¿Se puede crear el creador concreto Factory Method desde una interfaz o tiene que ser de una clase? (las clases difieren las instancias a subclases)
- Si Abstract Factory puede tener solo un creador y un producto, ¿es la única diferencia entre Abstract Factory y Factory Method que el creador para el primero es una Interfaz y el creador para el segundo es una Clase?