抽象工厂模式

个人博客

http://www.milovetingting.cn

抽象工厂模式

模式介绍

抽象工厂模式,也是创建型设计模式之一。

模式的定义

为创建一组相关或者相互依赖的对象提供一个接口,而不需要指定它们的具体类。

使用场景

一个对象族有相同的约束时可以使用抽象工厂模式。如,Android,ios都有短信软件和拨号软件,两者都属于软件的范畴,但它们所在的操作系统平台不一样,这时可以使用抽象工厂模式来实现。

简单实现

抽象产品类

public abstract class AbstractProductA {

	public abstract void method();

}

public abstract class AbstractProductB {
	
	public abstract void method();

}

抽象工厂类

public abstract class AbstractFactory {
	
	public abstract AbstractProductA createProductA();
	
	public abstract AbstractProductB createProductB();

}

具体产品类

public class ProductA1 extends AbstractProductA{

	@Override
	public void method() {
		
	}

}

public class ProductA2 extends AbstractProductA{

	@Override
	public void method() {
		
	}

}

public class ProductB1 extends AbstractProductB{

	@Override
	public void method() {
		
	}

}

public class ProductB2 extends AbstractProductB {

	@Override
	public void method() {

	}

}

具体工厂类

public class Factory1 extends AbstractFactory{

	@Override
	public AbstractProductA createProductA() {
		return new ProductA1();
	}

	@Override
	public AbstractProductB createProductB() {
		return new ProductB1();
	}

}

public class Factory2 extends AbstractFactory {

	@Override
	public AbstractProductA createProductA() {
		return new ProductA2();
	}

	@Override
	public AbstractProductB createProductB() {
		return new ProductB2();
	}

}

小结

抽象工厂模式优点:

分离接口与实现

抽象工厂模式缺点:

一是类文件的爆炸性增加,二是不太容易扩展新的产品类,因为每增加一个产品类就需要修改抽象工厂。

原文地址:https://www.cnblogs.com/milovetingting/p/12203780.html