原型模式(prototype pattern):與工廠模式類似,都是用來建立物件的。利用轉殖來生成乙個大物件,減少建立時的初始化等操作占用開銷
1,有些時候,我們需要建立多個類似的大物件。如果直接通過new物件,開銷很大,而且new完還得進行重複的初始化工作。可能把初始化工作封裝起來的,但是對於系統來說,你封不封裝,初始化工作還是要執行。
2,原型模式則不同,原型模式是先建立好乙個原型物件,然後通過clone這個原型物件來建立新的物件,這樣就免去了重複的初始化工作,系統僅需記憶體拷貝即可。
<?php
/*** 原型模式
** @author webff
*//**
//宣告乙個轉殖自身的介面
inte***ce prototype
//產品要實現轉殖自身的操作
class student implements prototype
public function printinfo()
public function copy()
}$stu1 = new student('清華大學', '計算機', '張三');
$stu1->printinfo();
$stu2 = $stu1->copy();
$stu2->name = '李四';
$stu2->printinfo();
?>
這裡可以看到,如果類的成員變數非常多,如果由外部建立多個新物件再乙個個賦值,則效率不高**冗餘也容易出錯,通過原型拷貝複製自身再進行微小修改就是另乙個新物件了。 PHP 設計模式之原型模式
1.與工廠模式類似,都是用來建立物件的 2.與工廠模式實現不同,原型模式是先建立好原型物件,然後通過 clone 原型物件來建立新的物件的。這樣就避免了類建立時重複的初始化操作 3.原型模式適用於大物件的建立,每建立乙個大物件需要很大的開銷,如果每次 new 就會消耗很大,原型模式僅需要記憶體拷貝即...
PHP設計模式之原型模式
原型模式其實更形象的來說應該叫轉殖模式。它主要的行為是對物件進行轉殖,但是又把被轉殖的物件稱之為最初的原型,於是,這個模式就這樣被命名了。說真的,從使用方式來看真的感覺叫轉殖模式更貼切一些。gof定義 用原型例項指定建立物件的種類,並且通過拷貝這些原型建立新的物件 gof類圖 實現 abstract...
php設計模式之原型模式
原型模式 prototype pattern 與工廠模式類似,都是用來建立物件的。利用轉殖來生成乙個大物件,減少建立時的初始化等操作占用開銷 一 為什麼需要原型模式 1,有些時候,我們需要建立多個類似的大物件。如果直接通過new物件,開銷很大,而且new完還得進行重複的初始化工作。可能把初始化工作封...