在PHP中實現工廠模式,可以按照以下步驟進行:
定義一個接口或者抽象類,作為產品的基類,包含產品的共同屬性和方法。
創建具體產品類,實現產品基類的接口或者繼承抽象類,并實現具體產品的特定屬性和方法。
創建一個工廠類,用于創建具體產品的實例。
在工廠類中定義一個方法,根據不同的參數創建不同的產品實例并返回。
在客戶端代碼中通過工廠類創建產品實例。
示例代碼如下:
// Step 1: 定義產品基類
interface Product {
public function getName();
}
// Step 2: 創建具體產品類
class ConcreteProduct1 implements Product {
public function getName() {
return "Product 1";
}
}
class ConcreteProduct2 implements Product {
public function getName() {
return "Product 2";
}
}
// Step 3: 創建工廠類
class Factory {
public function createProduct($type) {
switch ($type) {
case 1:
return new ConcreteProduct1();
case 2:
return new ConcreteProduct2();
default:
throw new InvalidArgumentException("Invalid product type.");
}
}
}
// Step 5: 使用工廠類創建產品實例
$factory = new Factory();
$product1 = $factory->createProduct(1);
echo $product1->getName(); // 輸出:Product 1
$product2 = $factory->createProduct(2);
echo $product2->getName(); // 輸出:Product 2
通過工廠類的createProduct方法,根據傳入的參數不同,可以創建不同類型的產品實例。這樣就實現了工廠模式。