<?php
// 原型模式
class Obj
{
private $name = 'obj';
}
class Prototype
{
private $type = 'prototype';
private $obj = null;
public function __construct($type = null)
{
$this->type = $type;
$this->obj = new Obj();
}
public function getType()
{
echoLine($this->type);
}
public function getObj()
{
return $this->obj;
}
}
$p = new Prototype('prototype');
$c = clone $p; //浅克隆
var_dump($c === $p); //false
var_dump($p->getObj() === $c->getObj()); //true
// ==================================================
// 深克隆
function deepClone($obj)
{
if(!is_object($obj))
return null;
return unserialize( serialize($obj) );
}
$dp = deepClone($p);
var_dump($dp === $p); //false
var_dump($p->getObj() === $dp->getObj()); //false
原型模式
最新推荐文章于 2022-12-05 10:54:59 发布