Este artículo describe el método de implementación del modelo de fábrica del patrón de diseño Java. Compártelo para su referencia, como sigue:
El modelo de fábrica proporciona principalmente una interfaz de transición para crear objetos, a fin de proteger y aislar el proceso específico de crear objetos, a fin de lograr el propósito de mejorar la flexibilidad.
El modelo de fábrica se divide en tres categorías:
1) modelo de fábrica simple: no propicio para la generación de series de productos;
2) Método de fábrica: también conocido como fábrica polimórfica;
3) Modelo de fábrica abstracta: también conocido como caja de herramientas, produce familias de productos, pero no es propicio para la generación de nuevos productos;
1. Modelo simple de fábrica
El modo simple de fábrica también se conoce como modo de método de fábrica estática. Al cambiar el nombre, puede ver que este patrón debe ser muy simple. Su propósito es simple: defina una interfaz para crear objetos.
En el modelo de fábrica simple, una clase de fábrica se encuentra en el centro de las llamadas de instanciación a una clase de producto, que determina qué clase de producto debe instanciarse, al igual que un policía de tráfico está en el flujo de vehículos y decide liberar el vehículo en qué dirección fluir. Echemos un vistazo a su composición:
1) Rol de fábrica: Este es el núcleo de este modelo, que contiene cierta lógica de negocios y lógica de juicio. En Java a menudo es implementado por una clase concreta.
2) Rol de producto abstracto: generalmente es una clase principal heredada por un producto específico o una interfaz implementada. Implementado por interfaces o clases abstractas en Java.
3) Rol de producto específico: El objeto creado por la clase de fábrica es una instancia de este rol. Implementado por una clase concreta en Java.
2. Modelo de método de fábrica
El modelo de método de fábrica es la mayor abstracción y promoción del modelo simple de fábrica. En el modelo de método de fábrica, ya no está determinado por una sola clase de fábrica que la clase de producto debe ser instanciada. Esta decisión se entrega a la subclase de la fábrica abstracta para tomar. Echemos un vistazo a su composición:
1) Rol de fábrica abstracta: este es el núcleo del patrón del método de fábrica, no tiene nada que ver con la aplicación. Es una interfaz que debe implementar un rol de fábrica específico o una clase principal que debe ser heredada. En Java se implementa por clases o interfaces abstractas.
2) Rol de fábrica específico: contiene un código relacionado con la lógica comercial específica. Llamado por la aplicación para crear el objeto de producto específico correspondiente.
3) Rol de producto abstracto: es la clase principal heredada por un producto específico o una interfaz implementada. En Java, generalmente hay clases o interfaces abstractas para implementarlas.
4) Rol de producto específico: el objeto creado por un rol de fábrica específico es una instancia de este rol. Implementado por clases concretas en Java.
El patrón de método de fábrica utiliza múltiples subclases heredadas del papel de fábrica abstracta para reemplazar la "clase de Dios" en el patrón de fábrica simple. Como se mencionó anteriormente, esto compartirá la presión sobre el objeto; Y esto hará que la estructura sea flexible: cuando se genera un nuevo producto (es decir, el automóvil del Nouveau Riche), siempre que se genere de acuerdo con el contrato proporcionado por el rol de producto abstracto y el rol de fábrica abstracta, el cliente puede usarlo sin tener que modificar ningún código existente. ¡Se puede ver que la estructura del papel de fábrica también se ajusta al principio de apertura y cierre!
El código es el siguiente:
// Interfaz de Public Product Interface móvil {void run ();} // El plano de clase pública de rol de producto específico implementa móvil {@Override public void run () {system.out.println ("plano ...."); }} Public Class Broom Implementa móvil {@Override public void run () {System.out.println ("Broom ......"); }} // Abstract Factory public Abstract Class VehicTory {Abstract Movible create ();} // La clase pública de fábrica especial Planefactory extiende VehicleFactory {public Mobible create () {return new plane (); }} public class BroomFactory extiende VehicleFactory {public mudable create () {return new Broom (); }} // Test Class Public Class Test {public static void main (string [] args) {VehicleFactory Factory = new BroomFactory (); Móvil m = fábrica.create (); m.run (); }}3. Patrón de fábrica abstracta
El código es el siguiente
// clase de fábrica abstracta clase public abstract AbstractFactory {public Abstract Vehicle CreateVeHicle (); Public Abstract Weapon CreateWeapon (); Public Abstract Food CreateFood ();} // Clase de fábrica de concreto, donde la comida, el vehículo, el arma son clases abstractas, la clase pública predeterminada Factory extiende AbstractFactory {@Override public Food CreateFood () {return new Apple (); } @Override public Vehicle createVeHicle () {return new Car (); } @Override Public Weapon CreateWeapon () {return new Ak47 (); }} // Test Class Public Class Test {public static void main (string [] args) {abstractFactory f = new DefaultFactory (); Vehículo v = F.CreateVeHicle (); v.run (); Arma w = f.createweapon (); w.shoot (); Comida a = f.createfood (); A.PrintName (); }}En el patrón de fábrica abstracta, el producto abstracto puede ser uno o más, formando así una o más familias de productos. En el caso de una sola familia de productos, el patrón de fábrica abstracto en realidad degenera al patrón de método de fábrica.
Resumir:
(1) El patrón de fábrica simple es crear instancias de otras clases por una clase específica. La clase principal es la misma y la clase principal es específica.
(2) El patrón del método de fábrica es que existe una clase principal abstracta que define la interfaz pública, y la subclase es responsable de generar objetos concretos. El propósito de esto es retrasar la instanciación de la clase a la subclase.
(3) El patrón de fábrica abstracta proporciona una interfaz para crear una serie de objetos relacionados o interdependientes sin especificar sus clases específicas. Se dirige a estructuras jerárquicas con múltiples productos. El modelo de método de fábrica está dirigido a la estructura de jerarquía de un producto.
Para obtener más contenido relacionado con Java, los lectores interesados en este sitio pueden ver los temas: "Estructura de datos de Java y tutorial de algoritmo", "Resumen de las puntas de nodo de operación Java DOM", "Resumen de los archivos Java y consejos de operación de directorio" y "Summary of Java Cache Operation Tips" ".
Espero que este artículo sea útil para la programación Java de todos.