當前位置: 首頁> 最新文章列表> PHP面向對像簡單工廠模式實現動態創建對象的方法

PHP面向對像簡單工廠模式實現動態創建對象的方法

M66 2025-07-29

PHP面向對像簡單工廠模式實現動態創建對象

簡單工廠模式(Simple Factory Pattern)是一種創建型設計模式,它提供了一個統一的方式來創建對象。通過PHP的面向對象編程,我們可以實現簡單工廠模式,從而靈活地實現對象的動態創建。

簡單工廠模式的基本原理

在簡單工廠模式中,工廠類負責創建對象。工廠類包含一個靜態方法,依據傳入的參數決定創建哪個對象。這樣,我們可以通過調用工廠類的靜態方法來生成所需的對象,而不需要直接實例化具體的對象。

使用PHP實現簡單工廠模式

以一個商品類(Product Class)為例,下面演示如何使用PHP面向對像簡單工廠模式實現對象的動態創建。

商品類示例

// 商品類
class Product {
    private $name;
    private $price;

    public function __construct($name, $price) {
        $this->name = $name;
        $this->price = $price;
    }

    public function getName() {
        return $this->name;
    }

    public function getPrice() {
        return $this->price;
    }
}

工廠類示例

// 工廠類
class ProductFactory {
    public static function createProduct($type) {
        switch ($type) {
            case 'book':
                return new Product('Book', 29.99);
            case 'phone':
                return new Product('Phone', 499.99);
            case 'laptop':
                return new Product('Laptop', 999.99);
            default:
                throw new Exception('Unsupported product type: ' . $type);
        }
    }
}

創建商品對象

// 使用工廠類创建商品对象
$book = ProductFactory::createProduct('book');
$phone = ProductFactory::createProduct('phone');
$laptop = ProductFactory::createProduct('laptop');

echo $book->getName();  // 輸出:Book
echo $book->getPrice(); // 輸出:29.99

echo $phone->getName();  // 輸出:Phone
echo $phone->getPrice(); // 輸出:499.99

echo $laptop->getName();  // 輸出:Laptop
echo $laptop->getPrice(); // 輸出:999.99

總結

通過以上示例,我們演示瞭如何使用PHP面向對象的簡單工廠模式來實現對象的動態創建。通過工廠類,我們可以根據類型靈活地創建不同的商品對象。當需要新增商品類型時,只需在工廠類中添加對應的分支,無需修改其他代碼。

使用簡單工廠模式可以提高代碼的可擴展性與維護性,使得代碼更加清晰且易於管理。同時,這種方式也實現了對象的解耦,便於進行後期的修改和優化。