Repaso
English

¿Cuál es la diferencia entre Factory Method y Abstract Factory?

Opciones

  1. No hay diferencia entre los dos, solo cambia el nombre
  2. Factory Method crea un producto; Abstract Factory crea familias de productos (Opción correcta)
  3. Factory Method es para threads; Abstract Factory, para bases de datos
  4. Abstract Factory no tiene interfaces y solo funciona con clases

Respuesta

Factory Method: un método que decide qué clase de producto crear. Abstract Factory: una interface para crear familias completas de objetos relacionados que van juntos

Por qué

Factory Method: un método devuelve un objeto de cierta interface y oculta qué clase concreta se crea: NotificationFactory.create("email") da un EmailNotifier.

Abstract Factory: un objeto que crea varios productos relacionados que deben ser coherentes. Ejemplo: una UiFactory que crea Button, Checkbox y Menu con aspecto de Windows o de Mac; cambias toda la familia cambiando la factory.

En Spring, el propio contenedor actúa como una factory gigante.

Recuerda

Factory Method = un producto. Abstract Factory = familia de productos.

Términos clave

Practica esta pregunta en Repaso