los diferencia principal entre el patrón de fábrica y el patrón de fábrica abstracto es que el el patrón de fábrica proporciona un método para crear objetos sin especificar la clase exacta utilizada para crearlo, mientras que el patrón de fábrica abstracto proporciona un método para combinar un grupo de fábricas individuales sin especificar sus clases concretas.
Los patrones de diseño son las soluciones a los problemas generales que enfrentan los desarrolladores de software cuando desarrollan software. Son genéricos y no dependen del tipo de sistema o del lenguaje de programación. Además, son soluciones probadas y proporcionan las mejores prácticas. Existen tres tipos de patrones de diseño como creacionales, estructurales y de comportamiento. Los patrones de creación proporcionan un método para crear objetos mientras ocultan la lógica creacional. Además, hacen que el programa sea más flexible. El patrón de fábrica y el patrón de fábrica abstracto son dos de estos patrones de diseño creativo..
1. ¿Qué es el patrón de fábrica?
- Definición, Funcionalidad
2. ¿Qué es el patrón abstracto de fábrica?
- Definición, Funcionalidad
3. ¿Cuál es la diferencia entre el patrón de fábrica y el patrón de fábrica abstracto?
- Comparación de diferencias clave
Resumen patrón de fábrica, patrón de fábrica
Un patrón de fábrica proporciona un buen método para crear objetos. Usando este método, el programador puede crear objetos sin exponer la lógica creacional. También es posible referir el objeto recién creado usando una interfaz común. Consulte el siguiente programa.
Figura 1: interfaz de forma
Figura 2: Clase Rectangular
Figura 3: clase cuadrada
Figura 4: Clase de círculo
Figura 5: Clase ShapeFactory
Figura 6: Clase principal
La interfaz Shape tiene un método abstracto llamado draw. Rectángulo, Cuadrado y Círculo son clases. Implementan la interfaz Shape. Por lo tanto, estas clases proporcionan una implementación para el método draw. El método de dibujo en cada clase tiene su propia implementación. La clase ShapeFacotry tiene un método llamado getShape. Se pone una cadena. Este método devolverá un objeto de acuerdo con la cadena recibida.
En el método principal, hay un objeto llamado forma. Es de tipo ShapeFactory. El método getShape se llama usando ese objeto. La cadena "Rectangle" se le pasa. El objeto devuelto se almacena en shape1, que es de tipo Shape. Del mismo modo, las cadenas "SQUARE" y "CIRCLE" se pasan a getShape. Los objetos devueltos se almacenan en shape2 y shape3. Cada objeto llama al método de dibujo y el método de dibujo correspondiente se ejecuta de acuerdo con la cadena pasada.
El programa principal utiliza la clase ShapeFactory para obtener un objeto Shape. Pasa la cadena requerida a ShapeFactory para obtener el tipo de objeto que necesita.
Abstract Factory Pattern utiliza una super fábrica y crea otras fábricas. También es conocido como fábrica de fábricas. En este patrón, una interfaz crea una fábrica de objetos relacionados sin especificar explícitamente sus clases. En otras palabras, después de crear la súper fábrica, puede crear otras fábricas. Consulte el siguiente programa.
Figura 7: Interfaz de color
Figura 8: Clase amarilla
Figura 9: Clase naranja
Figura 10: clase púrpura
Figura 11: clase AbstractFactory
Figura 12: Clase ShapeFactory
Figura 13: Clase ColorFactory
Figura 14: Clase FactoryProducer
Figura 15: Programa principal
La forma de la interfaz y las clases Rectángulo, Cuadrado, Círculo son iguales a las de la sección anterior. El color es una interfaz; Tiene un método abstracto llamado relleno. Las clases Yellow, Orange y Purple implementan esa interfaz. Por lo tanto, estas clases proporcionan implementación para el método de relleno. La clase AbstrcatFactory tiene dos métodos como getShape y getColor. La clase ShapeFactory extiende AbstractFacotry. Del mismo modo, la clase ColorFactory extiende AbstractFactory. Estas clases tienen las implementaciones para los métodos getShape y getColor..
La clase FactoryProducer tiene un método llamado getFactory que devuelve un objeto de tipo AbstractFactory. Devuelve un objeto ShapeFactory o un objeto ColorFactory o un valor nulo según la cadena que recibe. Finalmente, el método principal utiliza FactoryProducer para obtener AbstractFactory para obtener fábricas de clases concretas.
Además, el método principal utiliza FactoryProducer para obtener un objeto AbstractFactory. Pasa información como “RECTANGLE”, “SQUARE”, “CIRCLE” a AbstractFactory para obtener el tipo de objeto que necesita. Además, también pasa información como "AMARILLO", "NARANJA", "PÚRPURA" para obtener el tipo de objeto que necesita.
El patrón de fábrica es un patrón de creación que utiliza un método para tratar el problema de crear objetos sin tener que especificar la clase exacta del objeto que se creará. El patrón abstracto de fábrica, por otro lado, es un patrón creacional que proporciona una manera de encapsular a un grupo de fábricas individuales que tienen un tema común sin especificar sus clases concretas. Por lo tanto, estas definiciones explican la principal diferencia entre el patrón de fábrica y el patrón de fábrica abstracto..
Otra diferencia entre el patrón de fábrica y el patrón de fábrica abstracto es que el patrón de fábrica oculta la construcción de un solo objeto, mientras que el patrón de fábrica abstracto oculta la construcción de una familia de objetos relacionados.
El patrón de fábrica y el patrón de fábrica abstracta son dos patrones de diseño creativo. El patrón de fábrica proporciona un método para crear objetos sin especificar la clase exacta utilizada para crearlo. En contraste, el patrón de fábrica abstracto proporciona un método para combinar un grupo de fábricas individuales sin especificar sus clases concretas. Por lo tanto, esta es la principal diferencia entre el patrón de fábrica y el patrón de fábrica abstracto.
1. “Patrón de diseño de método de fábrica”. Javatpoint, disponible aquí.
2. “Abstract Factory Pattern”. Javatpoint, disponible aquí.