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

I. Panorama general

El patrón de fábrica abstracto es también un patrón de creación en el patrón de diseño y se utiliza para la construcción de familias de productos El patrón de fábrica abstracto es la forma más general de todas las formas de patrones de fábrica. La fábrica abstracta se refiere a un patrón de fábrica que se utiliza cuando hay múltiples roles. El patrón de fábrica abstracto puede proporcionar una interfaz para el cliente, lo que le permite crear objetos de producto de varias familias de productos sin tener que especificar el producto.

2. Diagrama de estructura de modos

Inserte la descripción de la imagen aquí

Tres, implementación de código Java

Tomemos la fruta como ejemplo. Primero, tenemos que crear la interfaz de fruta y la interfaz de fábrica de fruta.

package 抽象工厂模式;

public interface Fruit {
    
    
//	生产水果-接口
	public void get();
}
package 抽象工厂模式;

public interface FruitFactory {
    
    
	public Fruit getApple();
	public Fruit getBanana();
}

Cree una clase abstracta para frutas concretas y deje que la clase abstracta de frutas concretas implemente la interfaz de frutas

package 抽象工厂模式;

public abstract class Apple implements Fruit{
    
    
//	苹果抽象类
	public abstract void get();
}
package 抽象工厂模式;

public abstract class Banana implements Fruit{
    
    
//	香蕉抽象类
	public abstract void get();
}

Cree categorías de frutas específicas, cada fruta se divide en dos niveles, A y B.

package 抽象工厂模式;
//Apple_A 继承Apple
public class Apple_A extends Apple{
    
    
	@Override
	public void get() {
    
    
		System.out.println("生产A级-苹果");
	}
}
package 抽象工厂模式;
// Apple_B继承Apple类
public class Apple_B extends Apple{
    
    
	@Override
	public void get() {
    
    
		System.out.println("生产B级-苹果");
	}
}

Cree una fábrica de tipo A y una fábrica de tipo B que produzcan frutas de nivel A y frutas de nivel B respectivamente , e implemente la interfaz de fábrica

package 抽象工厂模式;
//	FruitFactory_calssA 要去实现 FruitFactory
public class FruitFactory_calssA implements FruitFactory{
    
    
//  A级水果工厂只生产A级水果
	@Override
	public Fruit getApple() {
    
    
//		生产A级苹果
		return new Apple_A();
	}

	@Override
	public Fruit getBanana() {
    
    
//		生产A级香蕉
		return new Banana_A();
	}

}
public class FruitFactory_calssB implements FruitFactory{
    
    
//   B级水果工厂只生产B级水果
	@Override
	public Fruit getApple() {
    
    
//		生产B级苹果
		return new Apple_B();
	}

	@Override
	public Fruit getBanana() {
    
    
//		生产B级香蕉
		return new Banana_B();
	}

}

Llamar demo *

package 抽象工厂模式;

public class test {
    
    
public static void main(String[] args) {
    
    

	FruitFactory f1 = new FruitFactory_calssA();
	FruitFactory f2 = new FruitFactory_calssB();
//	Apple
	Fruit apple_A = f1.getApple();
	apple_A.get();
	Fruit apple_B= f2.getApple();
	apple_B.get();
// 	Banana
	Fruit banana_A = f1.getBanana();
	banana_A.get();
	Fruit banana_B = f2.getBanana();
	banana_B.get();
}
}

Inserte la descripción de la imagen aquí

En cuarto lugar, el patrón del método de fábrica y la comparación del patrón de fábrica abstracto

Cada forma en el patrón del método de fábrica es una solución a un determinado problema y está dirigida a estructuras de series de productos múltiples; mientras que el patrón de fábrica abstracto está dirigido a estructuras de familias de productos múltiples y hay series de productos múltiples dentro de un producto.

Supongo que te gusta

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