定义:
围绕一个超级工厂创建其他工厂。该超级工厂又称为其他工厂的工厂。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。
和工厂模式相比,不仅仅可以生产一个大类产品,而是可以生产多个类的产品。也就是说打破了工厂和产品一对一的关系,一个具体的工厂类可以生产多个大类的产品。
类图
代码
public class AbstractFactoryPattern {
public static void main(String[] args) {
SuperFactory superFactory = new SuperFactory();
superFactory.createPhone("com.mxy.dp.iPhone");
superFactory.createMask("mask");
}
}
//抽象工厂
interface AbstractFactory{
Phone2 createPhone(String param);
Mask createMask(String param);
}
//具体工厂
class SuperFactory implements AbstractFactory{
@Override
public Phone2 createPhone(String param) { return new iPhone2(param);
}
@Override
public Mask createMask(String param) { return new N95(param);
}
}
// 产品大类--手机
interface Phone2{ }
class iPhone2 implements Phone2{
public iPhone2(String param) { System.out.println("create"+param); }
}
//产品大类--口罩
interface Mask{}
class N95 implements Mask{
public N95(String param) { System.out.println("create"+param);
}
}