抽象工厂模式
为创建一组相关或相互依赖的对象提供一个接口,而且无需指定他们的具体类。
抽象工厂模式是工厂方法模式的升级版本。
//抽象工厂类
public abstract class AbstractCreator {
public abstract AbstractProductA createProductA();
public abstract AbstractProductB createProductB();
}
//抽象产品类
public abstract class AbstractProductA {
public abstract void doSomething();
public void shareMethod(){
}
}
public abstract class AbstractProductB {
public abstract void doSomething();
public void shareMethod() {
}
}
//产品实现类1
public class ProductA extends AbstractProductA {
@Override
public void doSomething() {
}
}
//产品实现类2
public class ProductB extends AbstractProductB {
@Override
public void doSomething() {
}
}
//生产1级产品的实现类
public class Creator1 extends AbstractCreator {
@Override
public AbstractProductA createProductA() {
return new ProductA();
}
@Override
public AbstractProductB createProductB() {
return new ProductB();
}
}
//生产2级产品的实现类
public class Creator2 extends AbstractCreator {
@Override
public AbstractProductA createProductA() {
return new ProductA();
}
@Override
public AbstractProductB createProductB() {
return new ProductB();
}
}