【工厂方法模式】工厂方法模式是一种创建型设计模式,它定义了一个创建对象的接口,但让子类决定实例化哪一个类。工厂方法将对象的创建延迟到子类中进行,从而使得系统更加灵活和可扩展。
在实际开发中,工厂方法模式常用于需要根据不同的条件动态创建不同对象的场景,避免了直接使用`new`关键字带来的耦合问题。通过引入工厂类,可以将对象的创建与使用分离,提高代码的可维护性和可测试性。
工厂方法模式总结
| 项目 | 内容 |
| 模式类型 | 创建型设计模式 |
| 核心思想 | 定义一个创建对象的接口,由子类决定实例化哪一个类 |
| 主要优点 |
|
| 主要缺点 |
|
| 适用场景 |
|
| 示例语言 | Java、C++、Python 等面向对象语言均可实现 |
| 典型结构 |
|
工厂方法模式示例(Java)
```java
// 抽象产品类
interface Product {
void use();
}
// 具体产品类A
class ProductA implements Product {
public void use() {
System.out.println("使用产品A");
}
}
// 具体产品类B
class ProductB implements Product {
public void use() {
System.out.println("使用产品B");
}
}
// 抽象工厂类
abstract class Creator {
public abstract Product factoryMethod();
}
// 具体工厂类A
class CreatorA extends Creator {
public Product factoryMethod() {
return new ProductA();
}
}
// 具体工厂类B
class CreatorB extends Creator {
public Product factoryMethod() {
return new ProductB();
}
}
// 客户端代码
public class Client {
public static void main(String[] args) {
Creator creator = new CreatorA();
Product product = creator.factoryMethod();
product.use();// 输出:使用产品A
}
}
```
总结
工厂方法模式通过将对象的创建过程交给子类处理,有效降低了系统的耦合度,提高了代码的灵活性和可维护性。虽然增加了类的数量,但在大型项目中,这种设计模式能够显著提升系统的可扩展性。在实际开发中,应根据具体需求合理选择是否使用该模式。


