工廠方法模式(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://m.viscovery.cn/product/76.html
更新時間:2026-04-20 12:45:02