享元模式(Flyweight Pattern)主要用于減少創(chuàng)建對(duì)象的數(shù)量,以減少內(nèi)存占用和提高性能。這種類型的設(shè)計(jì)模式屬于結(jié)構(gòu)型模式,它提供了減少對(duì)象數(shù)量從而改善應(yīng)用所需的對(duì)象結(jié)構(gòu)的方式。
享元模式嘗試重用現(xiàn)有的同類對(duì)象,如果未找到匹配的對(duì)象,則創(chuàng)建新對(duì)象
結(jié)構(gòu)圖
角色與理解
- 享元模式共分為四種角色:
- Flyweight (抽象享元類):通常是一個(gè)接口或者是抽象類,在抽象享元類中聲明了共享享元類的公共方法,通過這些方法可以訪問享元類的內(nèi)部數(shù)據(jù)(內(nèi)部狀態(tài)),也可以設(shè)置享元類的外部數(shù)據(jù)(外部狀態(tài))
- Concrete Flyweight (共享具體享元類):實(shí)現(xiàn)抽象享元類,其實(shí)例稱為享元對(duì)象,一般為單例模式,提供唯一的享元對(duì)象
- UnsharedConcrete Flyweight (非共享具體享元類):實(shí)現(xiàn)抽象享元類,但是不共享,通過構(gòu)造函數(shù)進(jìn)行實(shí)例化
- Flyweight Factory (享元工廠類):創(chuàng)建并管理享元對(duì)象,以內(nèi)部的鍵值對(duì)結(jié)構(gòu)存儲(chǔ)享元對(duì)象
- 共享具體享元類與非共享具體享元類實(shí)現(xiàn)抽象享元類,能夠保證他們對(duì)外具有一致的行為接口,為客戶端的使用提供了便利,客戶端通過享元工廠類獲取共享享元對(duì)象。
- 享元工廠類返回的享元對(duì)象都是只有內(nèi)部狀態(tài)的享元對(duì)象,通過客戶端操作添加外部狀態(tài)
核心代碼
- 抽象享元類
- 具體享元類
- 享元工廠類
- 外部狀態(tài)類
- 客戶端
-
存儲(chǔ)器
+關(guān)注
關(guān)注
38文章
7632瀏覽量
166378
發(fā)布評(píng)論請(qǐng)先 登錄
尊享莊園農(nóng)場游戲平臺(tái)app定制
優(yōu)化電動(dòng)汽車的結(jié)構(gòu)性能
基于信息元的模式匹配方法
尊享莊園游戲模式開發(fā)
設(shè)計(jì)模式結(jié)構(gòu)性:適配器模式

設(shè)計(jì)模式結(jié)構(gòu)性:組合模式

設(shè)計(jì)模式結(jié)構(gòu)性:橋接模式

設(shè)計(jì)模式結(jié)構(gòu)性:門面模式

設(shè)計(jì)模式結(jié)構(gòu)性:代理模式

如何通過設(shè)計(jì)模式來節(jié)省內(nèi)存

評(píng)論