原型模式(Prototype Pattern)
- 原型模式与工厂模式作用类似,都是用来创建对象
- 与工厂模式实现不同,原型模式是先创建好一个原型对象,然后通过clone原型对象类创建新的对象。这样就免去类创建时的重复的初始化操作
- 原型模式适合大对象的创建。创建一个大对象需要很大的开销,每次new就会消耗很大,原型模式仅需内存拷贝即可
<?php
class PrototypePattern
{
public $name;
public function init($name)
{
$this->name = $name;
}
public function copy()
{
return clone $this;
}
}
$prototype1 = new PrototypePattern();
$prototype1->init("小明");
var_dump($prototype1);
$prototype2 = $prototype1->copy();
var_dump($prototype2);
结果