1、基本介绍

抽象工厂模式(Abstract Factory Pattern)是围绕一个超级工厂创建其他工厂。该超级工厂又称为其他工厂的工厂。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 在抽象工厂模式中,接口是负责创建一个相关对象的工厂,不需要显式指定它们的类。每个生成的工厂都能按照工厂模式提供对象。 提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。

2、具体实现

上一章 工厂方法模式的基础上,增加再增加PC系列产品的抽象类以及实现;

  • 定义PC抽象接口

    1. public interface PC {
    2. void make();
    3. }
  • 定义PC实现类

    1. public class MiPC implements PC{
    2. public MiPC() {
    3. this.make();
    4. }
    5. @Override
    6. public void make() {
    7. System.out.println("造小米电脑");
    8. }
    9. }
    10. public class MAC implements PC{
    11. public MAC() {
    12. this.make();
    13. }
    14. @Override
    15. public void make() {
    16. System.out.println("造苹果电脑");
    17. }
    18. }
  • 定义工厂

    1. public interface AbstractFactory {
    2. Phone makePhone();
    3. PC makePC();
    4. }
  • 工厂实现 ```java public class AppleFactory implements AbstractFactory { @Override public Phone makePhone() {

    1. return new IPhone();

    } @Override public PC makePC() {

      return new MAC();
    

    } } public class XiaoMiFactory implements AbstractFactory { @Override public Phone makePhone() {

      return new MiPhone();
    

    } @Override public PC makePC() {

      return new MiPC();
    

    } }


- 测试
```java
public class demo {
    public static void main(String[] arg) {
        //小米工厂造小米产品
        AbstractFactory miFactory = new XiaoMiFactory();
        miFactory.makePhone();
        miFactory.makePC();

        //苹果工厂造苹果产品
        AbstractFactory appleFactory = new AppleFactory();
        appleFactory.makePhone();
        appleFactory.makePC();
    }
}

image.png