PHP 设计模式之原型模式

来源:互联网 发布:c语言播放音乐函数 编辑:程序博客网 时间:2024/06/02 05:28
<?php// 1.与工厂模式类似,都是用来创建对象的// 2.与工厂模式实现不同,原型模式是先创建好原型对象,然后通过 clone 原型对象来创建新的对象的。这样就避免了类创建时重复的初始化操作// 3.原型模式适用于大对象的创建,每创建一个大对象需要很大的开销,如果每次 new 就会消耗很大,原型模式仅需要内存拷贝即可class Canvas{    public function init()    {        echo "init";    }    public function rect($top, $right, $bottom, $left)    {        echo $top, $right, $bottom, $left;    }}/** 传统模式$canvas1 = new Canvas;$canvas1->init();$canvas1->rect(2,3,4,5);echo "\n=====\n";$canvas2 = new Canvas;$canvas2->init();$canvas2->rect(2,3,4,5);*/// 原型模式$prototype = new Canvas;$prototype->init();$canvas1 = clone $prototype;$canvas2 = clone $prototype;$canvas1->rect(2,3,4,5);echo "\n=====\n";$canvas2->rect(2,3,4,5);