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

yipeiwu_com7年前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/>";

相关文章

PHP检查网站是否宕机的方法示例

本文实例讲述了PHP检查网站是否宕机的方法。分享给大家供大家参考,具体如下: <?php function Networkcheck($url){ $agent =...

json的键名为数字时的调用方式(示例代码)

对于键名为数字或者非正常变量字符时(如有空格),必须使用obj[xx]方式获取值。复制代码 代码如下:<?php //声明json数据$array = array('result'...

学习discuz php 引入文件的方法DISCUZ_ROOT

define('DISCUZ_ROOT', substr(dirname(__FILE__), 0, -7));这是discuz中定义论坛安装根目录的一个常量。现在我们就来分析一下这个很...

php实现获取及设置用户访问页面语言类

本文实例讲述了php实现获取及设置用户访问页面语言类,分享给大家供大家参考。具体分析如下: 该实例User Language Class 获取/设置用户访问的页面语言,如果用户没有设置访...

php 快速判断一个数字属于什么范围的实现方法

需求是这样 ... if ( $foo > 0 && $foo < 100 ) $bar = 1; elseif ( $foo > 99 && $foo < 2...