¿Cuál es la diferencia entre un patrón de fábrica y una interfaz simple?

Debe saber la clase de implementación directa si desea adquirir una instancia de una interfaz directamente. Con el patrón Factory, oculta los detalles de la construcción de la instancia de interfaz para que se pueda cambiar.

Desde el punto de vista del diseño, la combinación de interfaces y patrones de fábrica es lo que crea el patrón de inyección de dependencia. Efectivamente, esto le permite inyectar diferentes implementaciones de una interfaz a medida que las necesidades de implementación cambien. Es un enfoque muy útil cuando se diseñan marcos que tienen la posibilidad de cambiar con el tiempo. Considero que la comprensión de la inyección de dependencia utilizando este enfoque es un elemento básico del buen diseño de Java.

También va al concepto de ocultar detalles sobre la implementación de una interfaz. A usted, el usuario de la interfaz, no le importa cómo funciona. Solo que lo hace. En otras palabras, siempre se enfoca en la programación de interfaces, no en implementaciones. Los detalles no son tu problema.

Una interfaz proporciona un contrato de implementación. Una fábrica proporciona una forma de obtener una instancia de una implementación. Por lo tanto, podría usar una fábrica para su interfaz que devuelva una instancia de la implementación actual de esa interfaz.