PHP 設計模式之原型模式
“原型模式其實就是從一個對象再創建另外一個可定制的對象,而且不需知道任何創建的細節。”
我們來看看基本的原型模式代碼。
<?php
/**
* 原型模式
*
* 用原型實例指定創建對象的種類.並且通過拷貝這個原型來創建新的對象
*
*/
abstract class Prototype {
private$_id = null;
public function __construct($id) {
$this->_id = $id;
}
public function getID() {
return $this->_id;
}
public function __clone() { // magic function
$this->_id +=1;
}
public function getClone() {
return clone $this;
}
}
class ConcretePrototype extends Prototype {
}
$objPrototype = new ConcretePrototype(0);
$objPrototype1 = clone $objPrototype;
echo $objPrototype1->getID() . "<br/>";
$objPrototype2 = $objPrototype;
echo $objPrototype2->getID() . "<br/>";
$objPrototype3 = $objPrototype->getClone();
echo $objPrototype3->getID() . "<br/>";
?>
*