工厂方法模式(Factory Method Pattern)
工厂方法模式(Factory Method Pattern)
概述
工厂方法模式是一种创建型设计模式,用于定义一个创建对象的接口,但将具体实例化推迟到子类中完成。它允许系统在不修改现有代码的情况下引入新的产品类型,从而提高代码的灵活性和可扩展性。
核心要点
-
抽象工厂(Creator):
- 定义一个用于创建对象的抽象方法(工厂方法),具体实现由子类提供。
-
具体工厂(Concrete Creator):
- 实现抽象工厂方法,负责创建具体的产品实例。
-
抽象产品(Product):
- 定义产品的通用接口或抽象类,所有具体产品都必须实现该接口。
-
具体产品(Concrete Product):
- 实现抽象产品接口,表示具体的产品类型。
-
客户端(Client):
- 通过调用抽象工厂的方法来获取具体产品实例,而无需关心具体的实现细节。
优点
-
开闭原则:
- 新增产品类型时,只需添加新的具体工厂和具体产品,无需修改现有代码。
-
解耦:
- 将对象的创建与使用分离,使代码更加清晰、易于维护。
-
灵活性:
- 支持动态选择具体产品类型,便于扩展和定制。
实现方式
以下是一个典型的工厂方法模式实现:
1. 抽象产品(Product)
定义产品的通用接口或抽象类。
public interface Product {void use();
}
2. 具体产品(Concrete Product)
实现抽象产品接口ÿ