php中享元模式

2021-10-08 10:08:54 字數 873 閱讀 7421

參考:

享元模式(flyweight),為了節約記憶體的使用,享元模式會盡量使類似的物件共享記憶體。在大量類似物件被使用的情況中這是十分必要的。常用做法是在外部資料結構中儲存類似物件的狀態,並在需要時將他們傳遞給享元物件

<?php

/** * 建立享元介面 flyweightinte***ce 。

*/inte***ce flyweightinte***ce

/** * 假如可以的話,實現享元介面並增加記憶體儲存內部狀態。

* 具體的享元例項被工廠類的方法共享。

*/class characterflyweight implements flyweightinte***ce

/*** 實現 flyweightinte***ce 中的傳遞方法 render() 。

*/public function render(string $font): string

}/**

* 工廠類會管理分享享元類,客戶端不應該直接將他們例項化。

* 但可以讓工廠類負責返回現有的物件或建立新的物件。

*/class flyweightfactory implements \countable

return $this->pool[$name];

}/**

* 返回享元特徵個數。

*/public function count(): int

}/**

* 建立測試單元 flyweighttest 。

*/class flyweighttest

}// 享元模式會保證例項被分享。

// 相比擁有成百上千的私有物件,

// 必須要有乙個例項代表所有被重複使用來顯示不同單詞的字元。

}}

設計模式之享元模式 PHP實現

減少建立物件的數量,以減少記憶體占用和提高效能。這種型別的設計模式屬於結構型模式,它提供了減少物件數量從而改善應用所需的物件結構的方式。享元模式嘗試重用現有的同類物件,如果未找到匹配的物件,則建立新物件。在有大量物件時,有可能會造成記憶體溢位,我們把其中共同的部分抽象出來,如果有相同的業務請求,直接...

2018 2 7 PHP設計模式 享元模式

layout title date author desc in head post php設計模式之享元模式 2018 02 07 09 00 02 0800 南丞 設計模式 design pattern 是一套被反覆使用 多數人知曉的 經過分類編目的 設計經驗的總結。使用設計模式是為了可重用 讓...

php 實現設計模式之 享元模式

class book public function gettitle public function getauthor class bookfactory public function getbook title return this books title class bookshelf ...