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

yipeiwu_com6年前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设计模式 FlyWeight (享元模式)

享元模式英文称为“Flyweight Pattern”,我非常感谢将Flyweight Pattern翻译成享元模式的那位强人,因为这个词将这个模式使用的方式明白得表示了出来;如果翻译成...

PHP中文件缓存转内存缓存的方法

前言 顾名思义文件缓存转内存缓存就是将存储在文件中的数据转到内存中去,实现磁盘操作转为内存操作,这样可以大大提高数据访问速度,并能实现缓存数据的分布式部署。文件缓存与内存缓存的介绍请参考...

php实现多张图片上传加水印技巧

复制代码 代码如下: <?php function imageWaterMark($groundImage,$waterPos=0,$waterImage="",$waterTex...

PHP实现下载断点续传的方法

本文实例讲述了PHP实现下载断点续传的方法。分享给大家供大家参考。 具体实现代码如下: 复制代码 代码如下:<?php /*  * PHP下载断点续传 &nbs...

php FLEA中二叉树数组的遍历输出

但是要怎样遍历这个方法产生的二叉树数组呢?以下是我的做法: 复制代码 代码如下: <?php function preTree($cat){ foreach ($cat as $c...