PHP 设计模式之原型模式

11 篇文章 1 订阅
<?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);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值