简单工厂模式不是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(); } }