工厂模式主要有三种变体:简单工厂模式、工厂方法模式和抽象工厂模式。
简单工厂模式
定义: 由一个工厂类根据传入的参数决定创建哪一种产品类的实例。
特点:
工厂类负责创建对象,客户端只需调用工厂类的方法即可得到所需的对象,无需知道具体的创建过程。
比如,一台咖啡机就可以理解为一个工厂模式,你只需要按下想喝的咖啡品类的按钮(摩卡或拿铁),它就会给你生产一杯相应的咖啡,你不需要管它内部的具体实现,只要告诉它你的需求即可
// 产品接口
public interface Product {
void use();
}
// 具体产品
public class ProductA implements Product {
@Override
public void use() {
System.out.println("Using Product A");
}
}
public class ProductB implements Product {
@Override
public void use() {
System.out.println("Using Product B");
}
}
// 工厂类
public class SimpleFactory {
public static Product createProduct(String type) {
if (type.equals("A")) {
return new ProductA();
} else if (type.equals("B")) {
return new ProductB();
}
throw new IllegalArgumentException("Unknown product type");
}
}
// 测试简单工厂模式
public class SimpleFactoryDemo {
public static void main(String[] args) {
Product productA = SimpleFactory.createProduct("A");
productA.use();
Product productB = SimpleFactory.createProduct("B");
productB.use();
}
}