php设计模式 Prototype (原型模式)代码

时间:2022-09-06 16:40:19

代码如下:


<?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/>";