104抽象工厂模式

82 阅读1分钟

定义:

围绕一个超级工厂创建其他工厂。该超级工厂又称为其他工厂的工厂。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。

和工厂模式相比,不仅仅可以生产一个大类产品,而是可以生产多个类的产品。也就是说打破了工厂和产品一对一的关系,一个具体的工厂类可以生产多个大类的产品。

类图

图片1.png

代码

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);
    }
}