- 简单工厂模式(Simple Factory Pattern):
一个工厂类负责创建多个产品类的对象。
通过静态方法根据传入的参数类型来决定创建什么样的实例。
class SimpleFactory {
public static Product createProduct(String type) {
if (type.equalsIgnoreCase("A")) {
return new ConcreteProductA();
} else if (type.equalsIgnoreCase("B")) {
return new ConcreteProductB();
}
return null;
}
}
- 工厂方法模式(Factory Method Pattern):
定义一个创建产品的接口,由子类决定实例化哪个类。
每个具体工厂类负责创建一类产品。
interface Factory {
Product createProduct();
}
class ConcreteFactoryA implements Factory {
@Override
public Product createProduct() {
return new ConcreteProductA();
}
}
class ConcreteFactoryB implements Factory {
@Override
public Product createProduct() {
return new ConcreteProductB();
}
}
- 抽象工厂模式(Abstract Factory Pattern):
提供一个接口,用于创建相关或依赖对象的家族,而不需要指定它们的具体类。
每个具体工厂类负责创建一族相关的产品。
interface AbstractFactory {
AbstractProductA createProductA();
AbstractProductB createProductB();
}
class ConcreteFactory1 implements AbstractFactory {
@Override
public AbstractProductA createProductA() {
return new ConcreteProductA1();
}
@Override
public AbstractProductB createProductB() {
return new ConcreteProductB1();
}
}
class ConcreteFactory2 implements AbstractFactory {
@Override
public AbstractProductA createProductA() {
return new ConcreteProductA2();
}
@Override
public AbstractProductB createProductB() {
return new ConcreteProductB2();
}
}