中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

射陽做企業(yè)網(wǎng)站多少錢百度地圖優(yōu)化

射陽做企業(yè)網(wǎng)站多少錢,百度地圖優(yōu)化,網(wǎng)站換域名影響,工作表格excel下載目錄 享元模式(Flyweight Pattern) 享元模式的核心角色: 優(yōu)缺點(diǎn) 使用場景 注意事項(xiàng) 代碼實(shí)現(xiàn) 享元模式(Flyweight Pattern) 享元模式(Flyweight Pattern)它通過共享對象來減少內(nèi)存使用和提…

目錄

享元模式(Flyweight Pattern)

享元模式的核心角色:

優(yōu)缺點(diǎn)

使用場景

注意事項(xiàng)

代碼實(shí)現(xiàn)


享元模式(Flyweight Pattern)

????????享元模式(Flyweight Pattern)它通過共享對象來減少內(nèi)存使用和提高性能。享元模式的核心思想是共享,當(dāng)需要?jiǎng)?chuàng)建一個(gè)新對象時(shí),首先檢查是否已經(jīng)有與其相同的對象存在,如果存在,則直接返回該對象的引用;如果不存在,則創(chuàng)建一個(gè)新對象并將其加入對象池中以供下次使用。通過這種方式,可以避免重復(fù)創(chuàng)建相同的對象,從而減少內(nèi)存占用和提高性能。

????????使用享元模式需要有兩個(gè)前提:(1)享元對象不可變:當(dāng)享元模式創(chuàng)建出來后,它的變量和屬性不會被修改;(2)系統(tǒng)中存在大量重復(fù)對象:這些重復(fù)對象可以使用同一個(gè)享元,內(nèi)存中只存在一份,這樣會節(jié)省大量空間。當(dāng)然這也是為什么享元對象不可變的原因,因?yàn)橛泻芏嘁?#xff0c;變更的話會引起很多問題。

享元模式的核心角色

  • 享元工廠(Flyweight Factory):負(fù)責(zé)創(chuàng)建和管理享元對象。它維護(hù)一個(gè)享元池(Flyweight Pool),用于存儲已經(jīng)創(chuàng)建的享元對象。
  • 享元對象(Flyweight):表示可以共享的對象。享元對象通常包含內(nèi)部狀態(tài)和外部狀態(tài)。內(nèi)部狀態(tài)是不變的,可以被多個(gè)對象共享;外部狀態(tài)是可變的,每個(gè)對象都有自己的外部狀態(tài)。

優(yōu)缺點(diǎn)

(1)優(yōu)點(diǎn):

  • 縮小對象的創(chuàng)立,升高內(nèi)存中對象的數(shù)量,升高零碎的內(nèi)存,提高效率。
  • 縮小內(nèi)存之外的其余資源占用。

(2)缺點(diǎn):

  • 為了使對象可以共享,需要將一些不能共享的狀態(tài)外部化,這將增加程序的復(fù)雜性。
  • 讀取享元模式的外部狀態(tài)會使得運(yùn)行時(shí)間稍微變長。

使用場景

  • 系統(tǒng)有大量相似對象。
  • 需要緩沖池的場景。

注意事項(xiàng)

  • (1)注意劃分外部狀態(tài)和內(nèi)部狀態(tài),否則可能會引起線程安全問題。
  • (2)這些類必須有一個(gè)工廠對象加以控制。

代碼實(shí)現(xiàn)

package mainimport "fmt"// 一個(gè)文字編輯器,需要處理大量的字符對象。每個(gè)字符對象都有自己的字體、大小和顏色等屬性。由于字符對象可能非常多,
// 如果每個(gè)字符對象都占用大量內(nèi)存,將導(dǎo)致內(nèi)存消耗過大。我們希望能夠通過共享相同屬性的字符對象,來減少內(nèi)存使用。// 享元對象:字符對象
type Character struct {char  runefont  stringsize  intcolor string
}func (c *Character) Display() {fmt.Printf("Character: %c, Font: %s, Size: %d, Color: %s\n", c.char, c.font, c.size, c.color)
}// 享元工廠:字符工廠
type CharacterFactory struct {characters map[rune]*Character
}func NewCharacterFactory() *CharacterFactory {return &CharacterFactory{characters: make(map[rune]*Character),}
}func (f *CharacterFactory) GetCharacter(char rune, font string, size int, color string) *Character {key := charif _, ok := f.characters[key]; !ok {f.characters[key] = &Character{char:  char,font:  font,size:  size,color: color,}}return f.characters[key]
}// 客戶端代碼
func main() {factory := NewCharacterFactory()char1 := factory.GetCharacter('A', "Arial", 12, "Red")char1.Display()char2 := factory.GetCharacter('A', "Times New Roman", 14, "Blue")char2.Display()char3 := factory.GetCharacter('B', "Times New Roman", 14, "Blue")char3.Display()char4 := factory.GetCharacter('B', "Arial", 12, "Red")char4.Display()
}
http://www.risenshineclean.com/news/57144.html

相關(guān)文章:

  • wordpress 5.1.1主題網(wǎng)絡(luò)搜索引擎優(yōu)化
  • 公司網(wǎng)站服務(wù)器租用營銷策劃主要做些什么
  • 做網(wǎng)站包括哪些網(wǎng)絡(luò)科技有限公司
  • 企業(yè)網(wǎng)站建設(shè)方案教程網(wǎng)站批量收錄
  • 地方門戶東莞seo建站推廣費(fèi)用
  • 做網(wǎng)站好用的軟件seo搜索引擎優(yōu)化薪資
  • phpstudy 網(wǎng)站空白百度怎么推廣廣告
  • 網(wǎng)絡(luò)公司經(jīng)營范圍能寫建材嗎鄭州網(wǎng)站優(yōu)化seo
  • 碼云可以做博客網(wǎng)站嗎百度客服投訴中心
  • 大連科技網(wǎng)站制作網(wǎng)絡(luò)營銷的常用工具
  • 賭博網(wǎng)站開發(fā)軟件百度應(yīng)用市場
  • 做電影網(wǎng)站怎么接廣告建網(wǎng)站的公司排名
  • 大慶油田app下載安裝關(guān)鍵詞seo排名怎么做的
  • wordpress文章圖片顯示錯(cuò)誤引擎優(yōu)化seo
  • 企業(yè)網(wǎng)站開發(fā)建設(shè)葉濤網(wǎng)站推廣優(yōu)化
  • 徐州百姓網(wǎng)發(fā)布信息seo內(nèi)部優(yōu)化方案
  • 宣漢網(wǎng)站建設(shè)滕州百度推廣
  • 網(wǎng)站在線客服代碼下載百度競價(jià)排名價(jià)格
  • wordpress顯示作者seo站長網(wǎng)怎么下載
  • 網(wǎng)站建設(shè)q-9seo發(fā)貼軟件
  • 電商網(wǎng)站開發(fā)設(shè)計(jì)方案如何被百度收錄
  • 各類網(wǎng)站排行在線磁力搜索神器
  • 河南汝州文明建設(shè)門戶網(wǎng)站谷歌搜索優(yōu)化seo
  • 加強(qiáng)關(guān)工委網(wǎng)站建設(shè)seo廣告優(yōu)化
  • 做外匯都要看什么網(wǎng)站吉林seo管理平臺
  • 房地產(chǎn)網(wǎng)站做編輯剛剛?cè)胄芯W(wǎng)頁設(shè)計(jì)與制作作業(yè)成品
  • 網(wǎng)站開發(fā)需要的工具google adwords關(guān)鍵詞工具
  • 日本人做爰過程網(wǎng)站百度統(tǒng)計(jì)收費(fèi)嗎
  • 夏津網(wǎng)站建設(shè)電話百度提升排名
  • 新站快速收錄盤古百度推廣靠譜嗎