PHP 之設計模式學習筆記 原型模式

2021-10-07 02:40:26 字數 1692 閱讀 2936

原型模式是先建立好乙個原型物件,然後通過clone原型物件來建立新的物件。適用於大物件的建立,因為建立乙個大物件需要很大的開銷,如果每次new就會消耗很大,原型模式僅需記憶體拷貝即可。

使用場景:

大資料量(例如:通過orm 模型一次性往資料庫中插入1,000,000條資料)

例項:

抽象原型角色:宣告乙個轉殖自身的抽象類

<?php

namespace

;use

;use

illuminate\database\eloquent\model

;abstract

class

bookprototype

/** * @param $title

*/public

function

settitle

($title

)/**

* @return string

*/public

function

getcategory()

/** * @param $title

*/public

function

setcategory

($category

)/**

* ......

*//**

* 批量賦值

* @param $data

*/public

function

setdata

($data

)/**

* 新增資料庫操作

* @return \illuminate\database\eloquent\builder|model

*/public

function

adddata()

}

實現

<?php

namespace

;class

barbookprototype

extends

bookprototype

public

function

setdata

($data

)}

呼叫

$data=[

['title'

=>

'書籍'

,'category'

=>

'book'],

['title'

=>

'學習'

,'category'

=>

'student'],

['title'

=>

'上課'

,'category'

=>

'gogogo'],

['title'

=>

'自學'

,'category'

=>

'yesyes'],

];tryreturn

true;}

catch

(\exception

$exception

)

PHP 設計模式之原型模式

1.與工廠模式類似,都是用來建立物件的 2.與工廠模式實現不同,原型模式是先建立好原型物件,然後通過 clone 原型物件來建立新的物件的。這樣就避免了類建立時重複的初始化操作 3.原型模式適用於大物件的建立,每建立乙個大物件需要很大的開銷,如果每次 new 就會消耗很大,原型模式僅需要記憶體拷貝即...

PHP設計模式之原型模式

原型模式其實更形象的來說應該叫轉殖模式。它主要的行為是對物件進行轉殖,但是又把被轉殖的物件稱之為最初的原型,於是,這個模式就這樣被命名了。說真的,從使用方式來看真的感覺叫轉殖模式更貼切一些。gof定義 用原型例項指定建立物件的種類,並且通過拷貝這些原型建立新的物件 gof類圖 實現 abstract...

php設計模式之原型模式

原型模式 prototype pattern 與工廠模式類似,都是用來建立物件的。利用轉殖來生成乙個大物件,減少建立時的初始化等操作占用開銷 一 為什麼需要原型模式 1,有些時候,我們需要建立多個類似的大物件。如果直接通過new物件,開銷很大,而且new完還得進行重複的初始化工作。可能把初始化工作封...