工厂方法模式(Factory Method Pattern)是一种常用的创建型设计模式,它通过定义一个创建对象的接口,将具体对象的创建延迟到子类中实现,从而实现了对象的创建与使用的解耦。
工厂方法模式的核心思想是:定义一个用于创建对象的接口,但让子类决定实例化哪一个类。这种模式使一个类的实例化延迟到其子类,从而在不修改客户端代码的情况下,通过不同的子类创建不同的对象。
工厂方法模式适用于以下场景:
优势:
1. 良好的封装性:创建对象的代码被封装在具体工厂中
2. 可扩展性:增加新的产品类时,只需增加相应的具体工厂类,无需修改现有代码
3. 客户端与具体产品的解耦:客户端只依赖于抽象接口,不依赖于具体实现
局限:
1. 类的数量增多:每增加一种产品,就需要增加一个具体工厂类
2. 增加了系统的复杂性
以下是一个简单的工厂方法模式模型设计示例:
`java
// 抽象产品
interface Vehicle {
void drive();
}
// 具体产品:汽车
class Car implements Vehicle {
@Override
public void drive() {
System.out.println("驾驶汽车");
}
}
// 具体产品:自行车
class Bicycle implements Vehicle {
@Override
public void drive() {
System.out.println("骑自行车");
}
}
// 抽象工厂
abstract class VehicleFactory {
// 工厂方法
public abstract Vehicle createVehicle();
// 其他业务方法
public void deliver() {
Vehicle vehicle = createVehicle();
vehicle.drive();
}
}
// 具体工厂:汽车工厂
class CarFactory extends VehicleFactory {
@Override
public Vehicle createVehicle() {
return new Car();
}
}
// 具体工厂:自行车工厂
class BicycleFactory extends VehicleFactory {
@Override
public Vehicle createVehicle() {
return new Bicycle();
}
}
// 客户端代码
public class Client {
public static void main(String[] args) {
VehicleFactory factory = new CarFactory();
factory.deliver(); // 输出:驾驶汽车
factory = new BicycleFactory();
factory.deliver(); // 输出:骑自行车
}
}`
在Java中,工厂方法模式广泛应用于:
##
工厂方法模式通过将对象的创建延迟到子类,实现了创建过程的灵活性和扩展性。它是面向对象设计中“针对接口编程,而不是针对实现编程”原则的典型体现。掌握工厂方法模式,能够帮助开发者设计出更加灵活、可维护的软件系统。
如若转载,请注明出处:http://www.thinkeychain.com/product/76.html
更新时间:2026-04-16 12:59:07