享元模式(Flyweight Pattern)主要用于減少創(chuàng)建對象的數(shù)量,以減少內(nèi)存占用和提高性能。這種類型的設計模式屬于結構型模式,它提供了減少對象數(shù)量從而改善應用所需的對象結構的方式。
享元模式嘗試重用現(xiàn)有的同類對象,如果未找到匹配的對象,則創(chuàng)建新對象
結構圖
角色與理解
- 享元模式共分為四種角色:
- Flyweight (抽象享元類):通常是一個接口或者是抽象類,在抽象享元類中聲明了共享享元類的公共方法,通過這些方法可以訪問享元類的內(nèi)部數(shù)據(jù)(內(nèi)部狀態(tài)),也可以設置享元類的外部數(shù)據(jù)(外部狀態(tài))
- Concrete Flyweight (共享具體享元類):實現(xiàn)抽象享元類,其實例稱為享元對象,一般為單例模式,提供唯一的享元對象
- UnsharedConcrete Flyweight (非共享具體享元類):實現(xiàn)抽象享元類,但是不共享,通過構造函數(shù)進行實例化
- Flyweight Factory (享元工廠類):創(chuàng)建并管理享元對象,以內(nèi)部的鍵值對結構存儲享元對象
- 共享具體享元類與非共享具體享元類實現(xiàn)抽象享元類,能夠保證他們對外具有一致的行為接口,為客戶端的使用提供了便利,客戶端通過享元工廠類獲取共享享元對象。
- 享元工廠類返回的享元對象都是只有內(nèi)部狀態(tài)的享元對象,通過客戶端操作添加外部狀態(tài)
核心代碼
- 抽象享元類
- 具體享元類
- 享元工廠類
- 外部狀態(tài)類
- 客戶端
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。
舉報投訴
-
存儲器
+關注
關注
38文章
7484瀏覽量
163776
發(fā)布評論請先 登錄
相關推薦
尊享莊園農(nóng)場游戲平臺app定制
,尊享莊園農(nóng)場游戲平臺模式定制 1、尊享莊園 10元蘋果每天產(chǎn)1個尊享幣15天收獲15個尊享
發(fā)表于 10-08 15:05
優(yōu)化電動汽車的結構性能
優(yōu)化電動汽車的結構性能以提高效率和安全性迅速增長的全球電動汽車(EV)市場預計到2027年將達到8028億美元。在電池和高壓電子設備的驅(qū)動下,電動汽車的運行和維護成本往往低于傳統(tǒng)汽車,幾乎不會產(chǎn)生
發(fā)表于 09-17 08:10
基于信息元的模式匹配方法
有效的描述形式、處理耗時等缺點,極大地阻礙了結構信息的使用.為了充分利用結構信息,提出一種基于信息元的模式匹配方法(IU_Based),該方法首先將
發(fā)表于 01-23 15:29
?0次下載
尊享莊園游戲模式開發(fā)
尊享莊園軟件系統(tǒng)開發(fā)【185.7630.7194微電龍梓】,尊享莊園游戲模式開發(fā),尊享莊園系統(tǒng)開發(fā)定制,尊享莊園軟件開發(fā)定制,尊
發(fā)表于 10-09 14:05
?194次閱讀
設計模式結構性:橋接模式
橋接模式不是將兩個不相干的類鏈接,而是將一個需要多維度變化的類拆分成抽象部分和實現(xiàn)部分,并且在抽象層對兩者做組合關聯(lián),是用組合的方式來解決繼承的問題。
如何通過設計模式來節(jié)省內(nèi)存
相信大家日常開發(fā)過程中,一個優(yōu)秀的程序猿寫出的代碼一定要節(jié)省空間的,比如節(jié)省內(nèi)存,節(jié)省磁盤等等。那么如何通過設計模式來節(jié)省內(nèi)存呢? 1、什么是享元模式? Use sharing to
評論