工厂类
工厂类是创建具体产品的类。它通常是一个静态类,其中包含一个方法,该方法根据传递给它的参数来创建不同的对象。下面是一个示例:
代码语言:javascript复制class SimpleFactory {
public static function createProduct($type) {
switch ($type) {
case 'A':
return new ProductA();
case 'B':
return new ProductB();
default:
throw new Exception('Invalid product type.');
}
}
}
在上面的代码中,我们定义了一个名为SimpleFactory的工厂类,它有一个名为createProduct的静态方法。这个方法接受一个参数$type,用于确定要创建的具体产品类型。根据传递的$type参数,createProduct方法将返回ProductA或ProductB的实例。如果$type参数无效,它将抛出一个异常。
使用简单工厂模式
使用简单工厂模式时,您只需通过调用工厂类的createProduct方法来创建对象,而不需要直接调用构造函数。下面是一个示例:
代码语言:javascript复制$productA = SimpleFactory::createProduct('A');
echo $productA->getName(); // Output: Product A
$productB = SimpleFactory::createProduct('B');
echo $productB->getName(); // Output: Product B
在上面的代码中,我们使用SimpleFactory工厂类来创建ProductA和ProductB的实例,并输出它们的名称。