原型模式就是clone就是内存拷贝,比new的好处是创建对象快速,适合大对象创建

1.原型模式与工厂模式作用类似,都是用来创建对象
2.与工厂模式的实现不同,原型模式是先创建好一个原型对象,然后通过clone原型对象来创建新的对象,这
3.原型模式适用于大对象的创建,创建一个大对象需要很大的开销,如果每次new就会消耗很大,原型模式仅需内存拷贝即可

<?php

namespace Lib;

interface Prototype
{
    public function shallowCopy();

    public function deepCopy();
}
<?php

namespace Lib;

class ConcretePrototype implements \Lib\Prototype
{
    public function shallowCopy()
    {
        return clone $this;
    }

    public function deepCopy()
    {
        $serialize_obj = serialize($this);
        return unserialize($serialize_obj);
    }
}
$pro = new \Lib\ConcretePrototype();

$pro->name = 'liaozongchao';
$pro->age = 25;

print_r($pro);

$proCopy = $pro->shallowCopy();
$proCopy->age = 26;

print_r($proCopy);
print_r($pro);

results matching ""

    No results matching ""

    results matching ""

      No results matching ""