<?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);
PHP 设计模式之原型模式
最新推荐文章于 2024-10-15 11:12:50 发布