Patrón de fábrica simple de patrones de diseño comunes en Java

1. Modelo de fábrica simple

El modelo de fábrica simple pertenece al modelo de creación, que es responsable de crear la instanciación de otras clases mediante la definición de una clase. Las instancias creadas suelen tener una clase o interfaz padre común

Dos, diagrama de estructura

Inserte la descripción de la imagen aquí

  • Fábrica : La clase de fábrica, el núcleo del patrón de fábrica simple, es responsable de implementar la creación de una instancia. El método de creación de un Producto en la clase de fábrica puede ser llamado directamente por el mundo exterior.
  • IProduct : clase de producto abstracto, que se encarga de describir la interfaz común común a todas las instancias
  • Producto : La categoría de producto específica es el objetivo del modelo de fábrica simple.

Tres, demostración de código

A través del ejemplo de la fruta, primero necesitamos una interfaz de fruta abstracta

package 简单工厂模式;

public interface Fruit {
    
    
	//	生产水果
	public void get();
}

Luego tenemos que crear una clase de fruta específica (por ejemplo: manzana y pera) y dejar que herede la interfaz de la fruta.

public class Pear implements Fruit{
    
    

	public void get() {
    
    
		// TODO Auto-generated method stub
		System.out.println("生产梨子!");
		
	}
}
public class Apple implements Fruit {
    
    

	@Override
	public void get() {
    
    
		// TODO Auto-generated method stub
		System.out.println("生产苹果!");
	}
}

A continuación, debe crear una fábrica de frutas, que produce fruta pasando parámetros

package 简单工厂模式;

public class FruitFactory {
    
    
//	第一种 :简单
//	public	static Fruit getApple() {
    
    
//		return new Apple();
//		
//	}
//	public static Fruit getPear() {
    
    
//		return new Pear();
//		
//	}
	
//	第二种方式:通用
	
	public static Fruit getFruit(String type) {
    
    
//		返回水果对象
		if("apple".equals(type)) {
    
    
			return new Apple();
		}else if("Pear".equals(type)) {
    
    
			return new Pear();
		}else {
    
    
			return null;
		}
	}
}

A continuación, llámelo creando una clase de entidad.

package 简单工厂模式;
//测试类
public class Text {
    
    
public static void main(String[] args) {
    
    
/**	第三种方式 简单工厂模式
 * 
 * 直接通过工厂去调用实例化对象,
 * 不需要考虑如何后端是如何实现
 */
//	简单型
//	Fruit apple = FruitFactory.getApple();
//	apple.get();
//	Fruit pear = FruitFactory.getApple();
//	apple.get();
	
//	通用型
	Fruit apple = FruitFactory.getFruit("apple");
	apple.get();
	Fruit pear = FruitFactory.getFruit("Pear");
	pear.get();
}
}

En cuarto lugar, las ventajas y desventajas del modelo de fábrica simple.

En este patrón, la clase de fábrica es la clave de todo el patrón. Contiene los juicios lógicos necesarios, que pueden determinar qué objeto de clase específico debe crearse en función de la información proporcionada por el mundo exterior. El usuario puede crear directamente la instancia requerida basada en la clase de fábrica cuando la usa, sin tener que entender cómo se crean estos objetos de clase y cómo se organizan. Propicio para la optimización de toda la arquitectura del software.
No es difícil encontrar que las deficiencias del patrón de fábrica simple también se reflejan en su clase de fábrica Dado que la clase de fábrica concentra la lógica de creación de todas las instancias, no es buena en == "alta cohesión" ==. Además, cuando las categorías de productos específicas en el sistema continúan aumentando, puede parecer que las categorías de fábrica deben modificarse en consecuencia.La escalabilidad no es muy buena

Supongo que te gusta

Origin blog.csdn.net/weixin_44676935/article/details/104996481
Recomendado
Clasificación