[Patrón de diseño] ------ Patrón de método de fábrica

Patrón de método de fábrica

Las fábricas de teléfonos móviles fabrican teléfonos móviles, las fábricas de jabón hacen jabones y las fábricas farmacéuticas fabrican medicamentos.

Supongamos que hay una gran clase de objetos A1, A2, A3, A4 ... todos tienen una clase principal común A
A1 puede considerarse como un teléfono móvil, A2 puede considerarse como un jabón ...

(A1Factory en el siguiente ejemplo es una fábrica de teléfonos móviles, A2Factory es una fábrica de jabones)

Entonces, ¿cómo usar el patrón de método de fábrica para crear estos objetos? Ver un ejemplo

1. Definir la interfaz de una fábrica y el método de devolución de una entidad.

interface Factory{
	// 定义一个方法,返回A
	A create();
}

2. Para cada objeto, defina y cree su fábrica, y cada fábrica implementa la interfaz de fábrica del primer paso

class A1Factory implement Factory{
	// A1的工厂类,返回A1对象,用A引用返回出来
	public A creat(){
		return new A1();
	}
}
class A2Factory implement Factory{
	// A2的工厂类,返回A2对象,也用A引用返回出来
	public A creat(){
		return new A2();
	}
}
A3、A4类似

3. Cuando se usa

Al ver el siguiente efecto, probablemente pueda entender lo que significa: el objeto es creado por la clase padre de la fábrica, y también se accede por la clase padre A correspondiente. Eso es equivalente a proteger la diferencia de las subclases, siempre que se cambie una fábrica en la fuente, entonces la A devuelta es el objeto de la subclase correspondiente a la A generada en la fábrica.

public A getObj(Factory f){
	return f.create();
}

main(){
	// 给手机工厂,出来就是手机对象
	A A1 = getObj(new A1Factory());
	// 给肥皂工厂,出来就是肥皂对象
	A A2 = getObj(new A2Factory());
}

Pros y contras

Obviamente, el patrón del método de fábrica, cada objeto necesita ser creado para que él cree una clase de fábrica correspondiente. Esto es tanto una ventaja como una desventaja.
La ventaja es que hace esto, en comparación con la fábrica simple, retrasa la creación de instancias de la clase en la fábrica de subclase.
Las deficiencias se deben a esto, cada vez que hay un nuevo tipo, es necesario crear una fábrica correspondiente, que se siente redundante.

Expandir

A menudo, en cada subclase de fábrica del patrón de método de fábrica, se utiliza el patrón de fábrica simple.
En otras palabras, el método de creación de A1Factory no necesariamente devuelve solo A1. Puede ser una subclase de A1. En cuanto a cuál, puede agregar un parámetro de tipo al método de creación y distinguirlo según el tipo.

En resumen, esto significa que en la producción real, en muchos casos, se usan múltiples patrones de diseño juntos, no solo un cierto patrón de diseño.

203 artículos originales publicados · elogiados 186 · 210,000 visitas

Supongo que te gusta

Origin blog.csdn.net/java_zhangshuai/article/details/105170508
Recomendado
Clasificación