原型模式就是clone就是内存拷贝,比new的好处是创建对象快速,适合大对象创建
1.原型模式与工厂模式作用类似,都是用来创建对象
2.与工厂模式的实现不同,原型模式是先创建好一个原型对象,然后通过clone原型对象来创建新的对象,这样就免去了类创建时重复的初始化操作
3.原型模式适用于大对象的创建,创建一个大对象需要很大的开销,如果每次new就会消耗很大,原型模式仅需内存拷贝即可
/** * PHP原型模式 * 先创建一个原型对象,然后通过clone原型对象来创建新的对象 * 这样可以避免类创建时重复的初始化操作。 * Class Prototype */ class Prototype { public function init() { //.....这里初始化工作 有200次循环复杂操作 } public function run() { //执行操作 } } //创建原型对象并初始化 $prototype = new Prototype(); $prototype->init(); //clone 原型对象 $obj1 = clone $prototype; $obj1->run(); //clone 原型对象 $obj2 = clone $prototype; $obj2->run();