Patrón de método de fábrica de implementación simple de patrón de diseño

Patrón de método de fábrica

Patrón de fábrica simple, patrón de fábrica
abstracto , fábrica
abstracta, implementación simple del grupo de conexiones de base de datos

1. Definición:

Se refiere a la definición de una interfaz para crear objetos, pero la clase que implementa esta interfaz decide qué clase instanciar, y el método de fábrica coloca la instanciación de la clase en la subclase.

2. Ventajas:

Si la lógica de creación de cada objeto es diferente, las responsabilidades de la fábrica serán cada vez más y no será fácil de mantener El patrón del método de fábrica tiene una fábrica dedicada para cada objeto.

3. Los cuatro roles del patrón del método de fábrica

Fábrica abstracta : el núcleo del patrón del método de fábrica, en el que cualquier fábrica que cree objetos debe implementar esta interfaz.

Fábrica de hormigón : la clase de fábrica de hormigón que implementa la fábrica abstracta, contiene la lógica para crear objetos y la aplicación la llama para crear objetos.

Objeto abstracto : la superclase del objeto creado por el patrón del método de fábrica

Objeto concreto : Implementa la interfaz definida por el rol del objeto abstracto, y un objeto es creado por una fábrica de concreto.

4. Implementación simple del patrón del método de fábrica
public interface IFactory {//抽象工厂
	IProduct makeProduct();	
}
public class FactoryA implements IFactory {//创建A产品的工厂
	@Override
	public IProduct makeProduct() {
		return new ProductA();
	}
}
public class FactoryB implements IFactory {//创建B产品的工厂
	@Override
	public IProduct makeProduct() {
		// TODO Auto-generated method stub
		return new ProductB();
	}
}
public interface IProduct {//抽象对象
	void doSomeThing();
}
public class ProductA implements IProduct {//具体对象A
	@Override
	public void doSomeThing() {
		// TODO Auto-generated method stub
		System.out.println("A");
	}
}
public class ProductB implements IProduct {//具体对象B
	@Override
	public void doSomeThing() {
		// TODO Auto-generated method stub
		System.out.println("B");
	}
}
public class Client {
	public static void main(String[] args) {		
		IFactory factoryA = new FactoryA();//创建A工厂创建
		IFactory factoryB = new FactoryB();//创建B工厂创建
		IProduct productA = factoryA.makeProduct();//A工厂创建A对象
		IProduct productB = factoryB.makeProduct();//B工厂创建B对象
	}
	
}

Supongo que te gusta

Origin blog.csdn.net/weixin_45355510/article/details/112645330
Recomendado
Clasificación