内容纲要
工厂方法模式(Factory Method Pattern)是一种创建型设计模式,它提供了一种将对象创建过程封装起来的方法,让子类决定实例化哪一个类。工厂方法模式在一个接口中定义了创建对象的方法,但是由子类来决定要实例化的类是哪一个。工厂方法让类的实例化推迟到子类中进行。
以下是一个简单的Java实现:
- 首先,我们创建一个产品接口:
public interface Product {
void showProductInfo();
}
- 创建具体的产品类实现产品接口:
public class ConcreteProductA implements Product {
@Override
public void showProductInfo() {
System.out.println("This is ConcreteProductA");
}
}
public class ConcreteProductB implements Product {
@Override
public void showProductInfo() {
System.out.println("This is ConcreteProductB");
}
}
- 创建一个工厂接口,定义创建产品的方法:
public interface Factory {
Product createProduct();
}
- 创建具体的工厂类实现工厂接口,分别用于创建不同的产品:
public class ConcreteFactoryA implements Factory {
@Override
public Product createProduct() {
return new ConcreteProductA();
}
}
public class ConcreteFactoryB implements Factory {
@Override
public Product createProduct() {
return new ConcreteProductB();
}
}
- 使用工厂方法模式创建对象:
public class Main {
public static void main(String[] args) {
Factory factoryA = new ConcreteFactoryA();
Product productA = factoryA.createProduct();
productA.showProductInfo();
Factory factoryB = new ConcreteFactoryB();
Product productB = factoryB.createProduct();
productB.showProductInfo();
}
}
运行上述代码,你将看到:
This is ConcreteProductA
This is ConcreteProductB
这个例子展示了如何使用工厂方法模式来创建对象。当需要添加新的产品时,只需创建一个新的具体产品类和相应的具体工厂类即可,无需修改已有的代码。这有助于提高代码的可扩展性和可维护性。