设计模式之工厂方法模式--简易实现

工厂方法模式

简单工厂模式
抽象工厂模式
抽象工厂简单实现数据库连接池

1.定义:

指定义一个创建对象的接口,但由实现这个接口的类来决定实例化哪个类,工厂方法把类的实例化放到子类中进行。

2.优点:

如果每个对象的创建逻辑都有区别,工厂的职责会变得越来越多,不便于维护,工厂方法模式对每一个对象都有专门的工厂。

3.工厂方法模式的四个角色

抽象工厂:工厂方法模式的核心,该模式中任何创建对象的工厂都要实现该接口。

具体工厂:实现抽象工厂的具体工厂类,包含创建对象的逻辑,被应用程序调用以创建对象。

抽象对象:工厂方法模式所创建的对象的超类

具体对象:实现了抽象对象角色所定义的接口,某对象由某一具体工厂创建。

4.工厂方法模式的简单实现
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对象
	}
	
}

猜你喜欢

转载自blog.csdn.net/weixin_45355510/article/details/112645330