以下是一个简单的 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";
}
}
// 抽象工厂
interface Factory {
public function createProduct(): Product;
}
// 具体工厂A
class ConcreteFactoryA implements Factory {
public function createProduct(): Product {
return new ConcreteProductA();
}
}
// 具体工厂B
class ConcreteFactoryB implements Factory {
public function createProduct(): Product {
return new ConcreteProductB();
}
}
// 客户端代码
$factoryA = new ConcreteFactoryA();
$productA = $factoryA->createProduct();
echo $productA->getName(); // 输出 "Product A"
$factoryB = new ConcreteFactoryB();
$productB = $factoryB->createProduct();
echo $productB->getName(); // 输出 "Product B"
在这个例子中,Product 是抽象产品接口,ConcreteProductA 和 ConcreteProductB 是具体的产品实现。Factory 是抽象工厂接口,而 ConcreteFactoryA 和 ConcreteFactoryB 是具体工厂的实现。
客户端可以选择使用不同的工厂来创建不同类型的产品,而不必关心产品的具体类。这样的设计使得系统更加灵活,易于扩展,可以轻松地引入新的产品类型,而不必修改客户端代码。
转载请注明出处:http://www.pingtaimeng.com/article/detail/11933/PHP