简单工厂模式

简单工厂模式不是23种设计模式中的一种,但却是最基础的创建性设计模式。

抽象产品与具体产品之间可以是泛化也可以是实现关系。简单工厂与具体产品为依赖关系。

通过一个简单的汽车工厂例子阐述简单工厂设计模式的原理。

public class SimpleFactoryDemo {
  interface Car {
    void run();

    void stop();

    String brand();
  }

  static class BMW540Li implements Car {

    @Override
    public void run() {
      System.out.println("BMW540Li启动");
    }

    @Override
    public void stop() {
      System.out.println("BMW540Li停止");
    }

    @Override
    public String brand() {
      return "宝马";
    }
  }

  static class AudiA7 implements Car {

    @Override
    public void run() {
      System.out.println("AudiA7启动");
    }

    @Override
    public void stop() {
      System.out.println("AudiA7停止");
    }

    @Override
    public String brand() {
      return "奥迪";
    }
  }

  static class CarFactory {
    public static Car factory(String carName) {
      switch (carName) {
        case "BMW540Li":
          return new BMW540Li();
        case "AudiA7":
          return new AudiA7();
        default:
          throw new IllegalArgumentException("工厂不生产该车");
      }
    }
  }

  public static void main(String[] args) {
    Car car = CarFactory.factory("BMW540Li");
    car.run();
    car.stop();
    car.brand();
  }
}

  

原文地址:https://www.cnblogs.com/sstone/p/8465825.html