Método de fábrica
Antes de comprender el patrón del método de fábrica, debemos mencionar el patrón de fábrica simple. El patrón de fábrica simple consiste en construir una fábrica para producir una variedad de productos, pero es estático una vez que está escrito. Es obvio que no se ajusta a nuestro concepto de diseño. Si observamos los siete principios de diseño, todos reflejan alta agregación, bajo acoplamiento, cierre fuerte y fácil expansión. ¿Cómo es posible que este patrón de diseño rígido siga funcionando para nosotros? Así nació el patrón del método de fábrica. El patrón del método de fábrica es para el patrón de fábrica simple lo que la impresión de tipos móviles es para la impresión. Es más flexible, altamente utilizable y fácil de expandir.
A diferencia de la fábrica simple, la fábrica en el patrón del método de fábrica ya no tiene que ser responsable de la creación específica de todos los productos. En lugar de eso, crea una fábrica virtual y luego implementa la fábrica específica para completar. producción de diferentes productos crear. Los beneficios de esto son obvios. Cuando queremos continuar agregando nuevos productos a esta fábrica, no necesitamos modificar la fábrica original. Solo necesitamos implementar una fábrica virtual para completar la creación de nuevos productos.
El patrón de método de fábrica también se llama modo de fábrica, también llamado modo de constructor virtual (Virtual Constructor) o modo de fábrica polimórfica (Polymorphic Factory). En el patrón del método de fábrica, la clase principal de fábrica es responsable de definir la interfaz pública para crear objetos de producto, mientras que la subclase de fábrica es responsable de generar objetos de producto específicos. El propósito de esto es retrasar la creación de instancias de la clase de producto en la fábrica. subclase. Completado en.
Principios de diseño involucrados:
El patrón del método de fábrica incluye las siguientes funciones:
Aquí creamos una fábrica de formas para producir una variedad de formas
Demostración:
Resultado de ejecución:
Puede obtener el código fuente y el proyecto STARUML de esta instancia directamente desde mi github :)
Ventajas:
Contras:
¿Quieres conocer otros patrones de diseño? ¡Haga clic aquí!