模式定义
提供一个创建一系列相关或相互依赖对象的接口,而无须指定它们具体的类。抽象工厂模式又称为Kit模式,属于对象创建型模式。
模式结构
1.AbstractFactory抽象工厂
用于声明生成抽象产品的方法,在一个抽象工厂中可以定义一组方法,每一个方法对应一个产品等级结构
public abstract class AbstractFactory {
public abstract AbstractProductA createProductA();
public abstract AbstractProductB createProductB();
}
2.ConcreteFactory具体工厂
具体工厂实现了抽象工厂声明的生成抽象产品的方法,生成一组具体产品,这些产品构成了一个产品族,每一个产品都位于某个产品等级结构中。
public class ConcreteFactory1 extends AbstractFactory{
@Override
public AbstractProductA createProductA() {
return new ConcreteProductA1();
}
@Override
public AbstractProductB createProductB() {
return new ConcreteProductB1();
}
}
3.AbstractProduct抽象产品
抽象产品为每种产品声明接口,在抽象产品中定义了产品的抽象业务方法。
4.ConcreteProduct具体产品
具体产品定义具体工厂生产的具体产品对象,实现抽象产品接口中定义的业务方法。