原型模式与工厂模式作用类似,都是用来创建对象,但不同的是原型模式是先创建好一个原型对象,然后通过clone原型对象来创建新的对象。
这样就免去了类创建是重复的初始化操作。原型模式适用于对大对象的创建,大对象每次new消耗很大,原型模式仅需内存拷贝即可。
class A{
public function __construct() {
echo '初始化***';
}
public function fun() {
echo 'fun***';
}
}
$a=new A;
$a->fun();
$b=clone $a; //为执行__construct
$b->fun();
//输出结果为:初始化***fun***fun***
网友评论