Patrón de diseño JAVA 2: patrón de método de fábrica, que encapsula el proceso de creación de instancias de objetos en subclases

Página de inicio del autor : Diseñador Xiao Zheng
Breve introducción del autor : 3 años de experiencia en desarrollo JAVA full-stack, centrándose en la tecnología JAVA, personalización del sistema, orientación remota, dedicado a la transformación digital empresarial, profesor certificado de CSDN College y Blue Bridge Cloud Course.
Dirección principal : Vue, SpringBoot, subprograma WeChat

Este artículo explica el patrón de método de fábrica en el patrón de diseño de Java y proporciona un código de muestra.El patrón de método de fábrica es un patrón de diseño creacional que proporciona una forma de encapsular el proceso de creación de instancias de un objeto en una subclase.

inserte la descripción de la imagen aquí


1. ¿Qué es el patrón del método de fábrica?

El patrón de método de fábrica es un patrón de diseño creacional que proporciona una manera de encapsular el proceso de creación de instancias de un objeto en una subclase.En el patrón de método de fábrica , la clase principal define una interfaz para crear un objeto, pero la creación específica del objeto depende de la subclase. De esta forma, el proceso de creación de instancias del objeto se retrasa a la subclase, para que la subclase pueda crear objetos específicos según sea necesario.

En el patrón del método de fábrica, suele haber una clase de fábrica abstracta y varias clases de fábrica concretas . Un método de fábrica abstracto se define en la clase de fábrica abstracta, que devuelve una instancia de la clase de producto abstracto . La clase de fábrica específica hereda la clase de fábrica abstracta e implementa el método de fábrica para devolver una instancia de la clase de producto específica.

La ventaja del patrón del método de fábrica es que desacopla la creación y el uso de objetos, lo que aumenta la flexibilidad y la escalabilidad del sistema. Mediante la introducción de clases de fábrica abstractas y clases de fábrica concretas, se pueden agregar fácilmente nuevas clases de productos y clases de fábrica correspondientes, lo que se ajusta al principio de apertura y cierre.

El patrón del método de fábrica se aplica a los siguientes 3 33 tipos de situaciones, estudie cuidadosamente.

  • Cuando una clase no conoce la clase exacta de los objetos que necesita.
  • Cuando una clase quiere subclases para especificar los objetos creados.
  • Cuando una clase delega la creación de objetos a una de varias clases de fábrica concretas y desea separar la selección y el uso de la clase de fábrica concreta de la clase que creó el objeto.

En general, el patrón del método de fábrica logra la creación de objetos flexibles al retrasar la creación de objetos a subclases, lo que mejora la escalabilidad y la reutilización del sistema.

inserte la descripción de la imagen aquí


2. ¿Cuáles son los patrones del método de fábrica?

2.1 Patrón de fábrica simple

Modo de fábrica simple: una clase de fábrica crea objetos a través de métodos estáticos y determina qué objeto de producto específico crear de acuerdo con el tipo de parámetros pasados ​​en .El código de muestra es el siguiente.

// 抽象产品类
interface Product {
    
    
    void operation();
}

// 具体产品类A
class ConcreteProductA implements Product {
    
    
    @Override
    public void operation() {
    
    
        System.out.println("ConcreteProductA operation");
    }
}

// 具体产品类B
class ConcreteProductB implements Product {
    
    
    @Override
    public void operation() {
    
    
        System.out.println("ConcreteProductB operation");
    }
}

// 简单工厂类
class SimpleFactory {
    
    
    public static Product createProduct(String type) {
    
    
        if (type.equals("A")) {
    
    
            return new ConcreteProductA();
        } else if (type.equals("B")) {
    
    
            return new ConcreteProductB();
        }
        return null;
    }
}

// 客户端使用
public class Client {
    
    
    public static void main(String[] args) {
    
    
        Product productA = SimpleFactory.createProduct("A");
        productA.operation();

        Product productB = SimpleFactory.createProduct("B");
        productB.operation();
    }
}

2.2 Patrón de método de fábrica

Modo de método de fábrica: cada producto específico corresponde a una fábrica específica, la clase de fábrica abstracta define el método de fábrica y la subclase implementa el método de fábrica específico para crear el objeto del producto . El código de muestra es el siguiente.

// 抽象产品类
interface Product {
    
    
    void operation();
}

// 具体产品类A
class ConcreteProductA implements Product {
    
    
    @Override
    public void operation() {
    
    
        System.out.println("ConcreteProductA operation");
    }
}

// 具体产品类B
class ConcreteProductB implements Product {
    
    
    @Override
    public void operation() {
    
    
        System.out.println("ConcreteProductB operation");
    }
}

// 抽象工厂类
interface Factory {
    
    
    Product createProduct();
}

// 具体工厂类A
class ConcreteFactoryA implements Factory {
    
    
    @Override
    public Product createProduct() {
    
    
        return new ConcreteProductA();
    }
}

// 具体工厂类B
class ConcreteFactoryB implements Factory {
    
    
    @Override
    public Product createProduct() {
    
    
        return new ConcreteProductB();
    }
}

// 客户端使用
public class Client {
    
    
    public static void main(String[] args) {
    
    
        Factory factoryA = new ConcreteFactoryA();
        Product productA = factoryA.createProduct();
        productA.operation();

        Factory factoryB = new ConcreteFactoryB();
        Product productB = factoryB.createProduct();
        productB.operation();
    }
}

Los anteriores son códigos de muestra de dos patrones de método de fábrica comunes, que muestran respectivamente los métodos de implementación del patrón de fábrica simple y el patrón de método de fábrica. Elija el método apropiado para implementar el patrón de método de fábrica de acuerdo con las necesidades reales.

inserte la descripción de la imagen aquí


3. Escenarios de aplicación del patrón del método de fábrica

El patrón del método de fábrica se aplica a los siguientes 4 44 escenarios:

  1. El patrón del método de fábrica se puede utilizar cuando una clase no conoce la clase exacta de objetos que necesita . Por ejemplo, un programa de dibujo de gráficos necesita crear diferentes tipos de objetos gráficos según la selección del usuario, pero el tipo de gráfico específico no se puede determinar en tiempo de compilación.
  2. El patrón del método de fábrica se puede usar cuando una clase quiere que las subclases especifiquen los objetos creados . Por ejemplo, una clase abstracta define un método abstracto para que las subclases implementen el método y creen objetos concretos.
  3. El patrón del método de fábrica se puede usar cuando una clase delega la creación de objetos a una de varias clases de fábrica concretas y desea separar la selección y el uso de la clase de fábrica concreta de la clase que crea el objeto . Por ejemplo, una clase de registrador debe elegir usar un registrador de archivos, un registrador de base de datos o un registrador de red según el entorno actual.
  4. Cuando necesite agregar nuevas clases de productos a través de la extensión sin modificar el código existente, puede usar el patrón de método de fábrica . Por ejemplo, una plataforma de comercio electrónico necesita agregar continuamente nuevos métodos de pago, lo que se puede lograr agregando una nueva clase de fábrica de pagos.

En general, el patrón del método de fábrica es adecuado para escenarios en los que se deben crear diferentes tipos de objetos de acuerdo con diferentes condiciones, y se desea desvincular la creación de objetos de la clase que usa específicamente los objetos. Proporciona una forma flexible de crear objetos, aumentando la escalabilidad y la reutilización del sistema.

inserte la descripción de la imagen aquí


En cuarto lugar, las preguntas de la entrevista con el patrón del método de fábrica.

  1. ¿Qué es el patrón del método de fábrica?
  2. ¿Cuál es la diferencia entre el patrón de método de fábrica y el patrón de fábrica simple?
  3. ¿Cuáles son los roles del patrón del método de fábrica?
  4. ¿Cuáles son las ventajas del patrón del método de fábrica?
  5. ¿Cuáles son las desventajas del patrón del método de fábrica?
  6. ¿Cómo se implementa el patrón del método de fábrica en Java?
  7. ¿Para qué escenarios es adecuado el patrón del método de fábrica?
  8. ¿Cuál es la diferencia entre el patrón de método de fábrica y el patrón de fábrica abstracto?
  9. Describa brevemente un ejemplo de implementación de un registrador usando el patrón del método de fábrica.
  10. ¿Se pueden usar juntos el patrón de método de fábrica y el patrón singleton?

V. Resumen

Este artículo explica el patrón de método de fábrica en el patrón de diseño de Java y proporciona un código de muestra. En el próximo blog, explicaré el patrón de fábrica abstracto de Java.

inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/qq_41464123/article/details/131997668
Recomendado
Clasificación