脚本宝典收集整理的这篇文章主要介绍了学习php设计模式 php实现原型模式(prototype),脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
具体原型(concrete Prototype)角色:实现一个克隆自身的操作
Prototype模式的
抽象工厂模式(abstract factory模式):Abstract Factory模式与Prototype模式在某种方面是相互竞争的,但是也可以一起使用。
brush:PHP;">/**
- 具体原型角色
*/
class ConcretePrototype implements Prototype{private $_name;
public function __construct($name) {
$this->_name = $name;
}public function setName($name) {
$this->_name = $name;
}public function getName() {
return $this->_name;
}public function copy() {
/ 深拷贝实现
$serialize_obj = serialize($this); // 序列化
$clone_obj = unserialize($serialize_obj); // 反序列化
return $clone_obj;
/
return clone $this; // 浅拷贝
}
}/**
- 测试深拷贝用的引用类
*/
class Demo {
public $array;
}class Client {
/**
$demo = new Demo();
$demo->array = array(1,2);
$object1 = new ConcretePrototype($demo);
$object2 = $object1->copy();var_dump($object1->getName());
echo '
';
VAR_dump($object2->getName());
echo '
';$demo->array = array(3,4);
var_dump($object1->getName());
echo '
';
var_dump($object2->getName());
echo '
';}
}
Client::main();
?>
以上是脚本宝典为你收集整理的学习php设计模式 php实现原型模式(prototype)全部内容,希望文章能够帮你解决学习php设计模式 php实现原型模式(prototype)所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。