在 PHP 中,工廠模式是一種創建型設計模式,它可以簡化對象的創建過程。工廠模式通過定義一個用于創建對象的接口,但讓子類決定實例化哪一個類。這樣,當需要創建一個新對象時,只需改變相應的工廠類即可。以下是一個簡單的 PHP 工廠模式的例子:
Product
:interface Product {
public function useProduct();
}
ConcreteProductA
和 ConcreteProductB
:class ConcreteProductA implements Product {
public function useProduct() {
return "Using ConcreteProductA";
}
}
class ConcreteProductB implements Product {
public function useProduct() {
return "Using ConcreteProductB";
}
}
Factory
:interface Factory {
public function createProduct();
}
ConcreteFactoryA
和 ConcreteFactoryB
:class ConcreteFactoryA implements Factory {
public function createProduct() {
return new ConcreteProductA();
}
}
class ConcreteFactoryB implements Factory {
public function createProduct() {
return new ConcreteProductB();
}
}
$factoryA = new ConcreteFactoryA();
$productA = $factoryA->createProduct();
echo $productA->useProduct() . PHP_EOL; // 輸出 "Using ConcreteProductA"
$factoryB = new ConcreteFactoryB();
$productB = $factoryB->createProduct();
echo $productB->useProduct() . PHP_EOL; // 輸出 "Using ConcreteProductB"
通過使用工廠模式,我們可以將對象的創建過程與實際的使用分離,使得代碼更加靈活和可擴展。當需要添加新的產品類時,只需創建一個新的具體產品類和相應的具體工廠類,而無需修改客戶端代碼。