Definición de patrón de método de fábrica
El significado del patrón del método de fábrica es definir una interfaz de fábrica para crear objetos de producto y posponer el trabajo de creación real a las subclases. La clase Core Factory ya no es responsable de la creación de productos, por lo que la clase Core se convierte en un rol de fábrica abstracta y solo es responsable de las interfaces que deben ser implementadas por subclases de fábrica específicas. La ventaja de una mayor abstracción es que el modelo de método de fábrica puede permitir que el sistema introduzca nuevos productos sin modificar el rol de fábrica específico.
Contiene los siguientes roles:
Diagrama de patrón de clase UML
Ejemplo
Supongamos que hay tres recargas, a saber, recargas rojas, recargas azules y recargas negras. Los usuarios esperan usar bolígrafos para aclarar el color de la recarga.
Descripción y uso de la estructura del patrón
1. Producto abstracto: pencore.java
public abstract class pencore {Color de cadena; Public Abstract void Writeword (String s);} 2. Producto específico (Concreteproduct) _1: Redpencore.java
Public Class RedPencore extiende Pencore {RedPencore () {color = "Red"; } public void WriteWord (String S) {System.out.println ("Escriba la palabra"+color+":"+s); }} Producto específico (concreteproducto) _2: bluepencore.java
public class bluePencore extiende pencore {bluePencore () {color = "azul"; } public void WriteWord (String S) {System.out.println ("Escriba la palabra"+color+":"+s); }} Producto específico (Concreteproduct) _3: Blackpencore.java
Public Class BlackPencore extiende Pencore {BlackPenCore () {color = "Black"; } public void WriteWord (String S) {System.out.println ("Escriba la palabra"+color+":"+s); }} 3. Constructor: Ballen.java
public abstract Class Ball Pen {Ballpe () {System.out.println ("produjo un bolígrafo con"+getPencore (). color+"recarga núcleo"); } public Abstract Pencore getPencore (); // Método de fábrica} 4. Concretecreator:
Redballpen.javapublic Class Redballpen extiende Ballen {public pencore getPencore () {return new RedPencore (); }} Blielballpen.Javapublic Class Blielballpen extiende Ballimen {public pencore getPencore () {return new bluePencore (); }} Blackballpen.javapublic class Blackballpen extiende Ballime {public pencore getPencore () {return new BlackPenCore (); }} 5. Aplicación. Java
Aplicación de clase pública {public static void main (string args []) {pencore pencore; Ballen Ballen = new Blielballpen (); pencore = ballimen.getPencore (); pencore.writeword ("Hola, me alegro de conocerte"); Ballen = new RedBallPen (); pencore = ballimen.getPencore (); pencore.writeword ("Cómo estás"); Ballen = new Blackballpen (); pencore = ballimen.getPencore (); pencore.writeword ("Encantado de conocerte"); }} Resumir
El patrón de método de fábrica pertenece al patrón de creación de clases. En el modo de 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 operación de instanciación de la clase de producto a la subclase de fábrica, es decir, determinar qué clase de producto específica debe instanciarse a través de la subclase de fábrica.
El modelo de método de fábrica es una mayor abstracción y promoción del modelo simple de fábrica. Debido al uso del polimorfismo orientado a objetos, el patrón del método de fábrica mantiene las ventajas de un patrón de fábrica simple y supera sus desventajas. En el modelo de método de fábrica, la clase Core Factory ya no es responsable de la creación de todos los productos, sino que le da el trabajo de creación específico a la subclase. Esta clase central solo es responsable de dar las interfaces que la fábrica específica debe implementar, pero no los detalles de la instanciación de la clase de producto. Esto permite que el modelo de método de fábrica permita que el sistema introduzca nuevos productos sin modificar el rol de fábrica. La principal ventaja del modelo de método de fábrica es que al agregar nuevas clases de producto, no necesita modificar el sistema existente y encapsula los detalles de creación del objeto del producto. El sistema tiene una buena flexibilidad y escalabilidad; Su desventaja es que requiere agregar nuevas fábricas mientras se agrega nuevos productos, lo que resulta en pares de clases de sistema, lo que aumenta la complejidad del sistema hasta cierto punto.