以下是一个简单的 PHP 简单工厂模式的示例:
// 抽象产品接口
interface Product {
public function getName();
}
// 具体产品A
class ConcreteProductA implements Product {
public function getName() {
return "Product A";
}
}
// 具体产品B
class ConcreteProductB implements Product {
public function getName() {
return "Product B";
}
}
// 简单工厂类
class SimpleFactory {
public function createProduct($type) {
switch ($type) {
case 'A':
return new ConcreteProductA();
case 'B':
return new ConcreteProductB();
default:
throw new \InvalidArgumentException("Invalid product type");
}
}
}
// 客户端代码
$factory = new SimpleFactory();
// 创建产品A
$productA = $factory->createProduct('A');
echo $productA->getName(); // 输出 "Product A"
// 创建产品B
$productB = $factory->createProduct('B');
echo $productB->getName(); // 输出 "Product B"
在这个例子中,Product 是抽象产品接口,ConcreteProductA 和 ConcreteProductB 是具体产品实现。SimpleFactory 是简单工厂类,负责根据客户端传递的参数创建不同类型的产品。
客户端通过调用简单工厂的 createProduct 方法来获取具体的产品实例,而无需关心具体产品的实例化过程。这样的设计使得客户端代码更加简洁,同时也方便了后续的扩展和维护。
转载请注明出处:http://www.zyzy.cn/article/detail/11936/PHP