在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方法,根据传入的参数不同,可以创建不同类型的产品实例。这样就实现了工厂模式。