PHP - 設計模式之 原型模式

原型模式

概述部分

1、與工廠模式相似,都是用來創建對象。

2、與工廠模式的實現不同,原型模式是先創建好一個原型對象,然後,通過clone原型對象,來創建新的對象。這樣就免去了類創建時,重複的初始化操作。

3、原型模式適用於大對象的創建。創建一個大對象,需要很大的開銷,如果每次new操作,消耗就會很大,而原型模式,僅需內存拷貝即可。

代碼部分

1、核心代碼。該原型模式的作用是,設定寬高,來畫*狀的圖形。

 

2、調用canvas類,來實現畫圖功能。我們先來看傳統的方式,也就是最原始的調用方式

 

3、瀏覽器輸出

 

4、通過上圖及代碼,我們也能看出,init方法在循環輸出的時候,會有相當的性能開銷,因此,當沒回都進行new實例的時候,內存開銷勢必會很大,那該如何進行優化呢?原型模式就上場了!

 

5、使用原型模式,只需實例一次類

接下來,如果我們相同的多次實例操作,可以使用clone,對對象進行克隆,節省了開銷,實現內存內的拷貝!

 

6、瀏覽器輸出

總結

同樣,實現了功能,但在開銷上,相比傳統方式,原型模式,通過clone實現了內存拷貝,節省了很大的開銷,是個很好的方式,對於大類,一定要儘可能的靠攏原型模式。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章