复制代 代码如下:
/**
* プロトタイプ モード
*
* プロトタイプ インスタンスを使用して、作成するオブジェクトのタイプを指定し、このプロトタイプをコピーして新しいオブジェクトを作成します
*
*/
抽象クラス プロトタイプ
{
プライベート $_id = null;
パブリック関数 __construct($id)
{
$this->_id = $id;
}
public function getID()
{
return $this->_id;
}
パブリック関数 __clone() // マジック関数
{
$this->_id = 1;
}
public function getClone()
{
return clone $this;
}
}
class ConcretePrototype extends Prototype
{
}
//
$objPrototype = new ConcretePrototype(0);
$objPrototype1 = $objPrototype のクローンを作成します。
echo $objPrototype1->getID()."
";
$objPrototype2 = $objPrototype;
echo $objPrototype2->getID()."
";
$objPrototype3 = $objPrototype->getClone();
echo $objPrototype3->getID()."
";