1.简要说明
提供一个创建一系列相关或相互依赖对象的接口,而无须指定它们具体的类。
2.代码实现
public class AbstractFactory {
public static void main(String[] args) {
Factory factory1 = new Factory1();
ProductA productA = factory1.createProductA();
Factory factory2 = new Factory2();
ProductB productB = factory2.createProductB();
productA.show();
productB.show();
}
}
interface Factory {
ProductA createProductA();
ProductB createProductB();
}
class Factory1 implements Factory {
@Override
public ProductA createProductA() {
return new ProductA1();
}
@Override
public ProductB createProductB() {
return new ProductB1();
}
}
class Factory2 implements Factory {
@Override
public ProductA createProductA() {
return new ProductA2();
}
@Override
public ProductB createProductB() {
return new ProductB2();
}
}
interface ProductA {
void show();
}
interface ProductB {
void show();
}
class ProductA1 implements ProductA {
@Override
public void show() {
System.out.println("ProductA1");
}
}
class ProductA2 implements ProductA {
@Override
public void show() {
System.out.println("ProductA2");
}
}
class ProductB1 implements ProductB {
@Override
public void show() {
System.out.println("ProductB1");
}
}
class ProductB2 implements ProductB {
@Override
public void show() {
System.out.println("ProductB2");
}
}