原型模式與工程模式作用類似,都是用來創建對象。
與工程模式的實現不同,原型模式是先創建好一個原型對象,然後銅鼓clone原型對象來創建新的對象。這樣就免去了類創建時重復的原始化操作。
原型模式適用於大對象的創建。創建一個大對象需要很大的開銷,如果每次new就會消耗很大,原型模式僅需內存拷貝即可。
index.php
$prototype = new Baobab\Canvas(); $prototype->init(); $canvas1 = clone $prototype; $canvas1->rect(3,6,4,12); $canvas1->draw(); $canvas2 = clone $prototype; $canvas2->rect(3,6,4,12); $canvas2->draw();