个人博客
抽象工厂模式
模式介绍
抽象工厂模式,也是创建型设计模式之一。
模式的定义
为创建一组相关或者相互依赖的对象提供一个接口,而不需要指定它们的具体类。
使用场景
一个对象族有相同的约束时可以使用抽象工厂模式。如,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();
}
}
小结
抽象工厂模式优点:
分离接口与实现
抽象工厂模式缺点:
一是类文件的爆炸性增加,二是不太容易扩展新的产品类,因为每增加一个产品类就需要修改抽象工厂。