La diferencia entre el modo de fábrica y el modo de constructor
El modo de fábrica es una entrada y una salida, y el modo Constructor es una operación de canalización paso a paso.
Builder resulta útil cuando necesitas realizar una serie de tareas ordenadas o crear un objeto de acuerdo con cierta lógica.
Podemos ver que el modo Builder y el modo Factory son muy similares, pero aún tienen diferencias:
1. Desde un punto de vista estructural, el modo Builder tiene más características. que el modo Factory. Un rol de "tipo director".
En el diagrama de clases del patrón Builder, si la clase directora se considera como el cliente al que finalmente se llama, entonces el resto del diagrama se puede considerar como un patrón de fábrica simple.
2. Los tipos de productos creados por ambos son completamente diferentes.
Factory solo puede crear un solo producto (aquí, solo significa que no es un producto compuesto), mientras que el producto creado por Builder es un producto compuesto, es decir, el producto en sí está compuesto por otros productos componentes.
Por ejemplo, si quieres producir un coche ahora, supón que sólo consta de estas tres partes: cristal, ruedas y motor.
Para el modo de fábrica, lo que devuelve después de la creación solo puede ser vidrio, ruedas o motores.
Pase lo que pase, no puede devolver un automóvil completo al cliente. Para obtener un automóvil completo, el cliente debe ensamblar las piezas en un automóvil él mismo.
En este sentido, la fábrica en el modelo fábrica actúa únicamente como fábrica de piezas.
Entonces, ¿cómo crea Builder los productos? En el modelo Builder, generalmente no es necesario ni está permitido devolver componentes individuales al cliente. Lo que éste devuelve al cliente es sólo un automóvil terminado y completamente ensamblado.
Los clientes no necesitan ni deben informarles los detalles de producción de las piezas de automóvil.
Al escribir esto, de repente pensé en la diferencia entre las computadoras ensambladas y las de marca. Aunque las computadoras ensambladas son baratas y fáciles de modificar, su rendimiento no está garantizado. Además, usted mismo debe saber mucho sobre las computadoras. ; No hablemos por ahora del alto precio de las computadoras de marca. La clave es que son inflexibles, pero su rendimiento puede estar bien garantizado (por el fabricante), al igual que garantizamos la calidad de los componentes en el lado del sistema. de Constructor. Además, en el caso de las computadoras de marca, los clientes no necesitan saber mucho sobre el ensamblaje de computadoras antes de poder llevárselas a casa y ponerlas en marcha.
Entonces, en la aplicación real, ¿prefieres ser una persona que hace bricolaje o prefieres una calidad estable y garantizada? Parece que en el proceso de programación tendemos a utilizar "ordenadores de marca". Esto también nos proporciona una dirección para utilizar estos dos patrones de diseño correctamente: si el producto que desea producir se compone de diferentes componentes, será mejor que utilice el patrón Builder en lugar del patrón Factory.
3. La diferencia entre Builder y Factory radica en el árbol de productos donde se encuentran los productos componentes que producen.
Esto puede resultar un poco difícil de pronunciar. Específicamente, en el patrón de fábrica, sabemos que una fábrica puede crear múltiples productos, pero un producto creado en un patrón de fábrica estará en el mismo árbol de herencia que un producto creado en otra fábrica.
El constructor puede crear productos no relacionados (aunque nosotros no hacemos esto), pero el modo Fábrica generalmente crea un tipo de producto.