以下是一个简单的 PHP 原型模式的示例:
// 抽象原型类
abstract class Prototype {
protected $name;
abstract public function clone(): Prototype;
public function getName() {
return $this->name;
}
public function setName($name) {
$this->name = $name;
}
}
// 具体原型类 A
class ConcretePrototypeA extends Prototype {
public function clone(): Prototype {
$clone = new ConcretePrototypeA();
$clone->setName($this->name);
return $clone;
}
}
// 具体原型类 B
class ConcretePrototypeB extends Prototype {
public function clone(): Prototype {
$clone = new ConcretePrototypeB();
$clone->setName($this->name);
return $clone;
}
}
// 客户端代码
$prototypeA = new ConcretePrototypeA();
$prototypeA->setName("Prototype A");
$cloneA = $prototypeA->clone();
echo $cloneA->getName(); // 输出 "Prototype A"
$prototypeB = new ConcretePrototypeB();
$prototypeB->setName("Prototype B");
$cloneB = $prototypeB->clone();
echo $cloneB->getName(); // 输出 "Prototype B"
在这个例子中,Prototype 是抽象原型类,定义了一个抽象的 clone 方法。ConcretePrototypeA 和 ConcretePrototypeB 是具体的原型类,分别实现了 clone 方法。
客户端通过实例化原型对象,并通过 clone 方法创建新的对象,而不是通过直接实例化新对象。这样可以避免重复的创建过程,提高了对象的创建效率。在实际应用中,可以根据需要对原型对象的属性进行定制,以满足不同的需求。
转载请注明出处:http://www.pingtaimeng.com/article/detail/11935/PHP