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

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

服務(wù)器維護(hù)網(wǎng)站建設(shè)教程網(wǎng)絡(luò)營銷策略分析

服務(wù)器維護(hù)網(wǎng)站建設(shè)教程,網(wǎng)絡(luò)營銷策略分析,大連網(wǎng)站建設(shè)制作公司,合肥網(wǎng)站建設(shè)發(fā)布Flyweight pattern 享元模式是一種結(jié)構(gòu)化的設(shè)計模式,主要用于產(chǎn)生大量類似對象而內(nèi)存又有限的場景。享元模式能節(jié)省內(nèi)存。 假設(shè)一個國際化特大城市SZ;它有5個區(qū),分別為nanshan、futian、luohu、baoan、longgang;每個區(qū)都有多個圖…

Flyweight pattern

享元模式是一種結(jié)構(gòu)化的設(shè)計模式,主要用于產(chǎn)生大量類似對象而內(nèi)存又有限的場景。享元模式能節(jié)省內(nèi)存。

假設(shè)一個國際化特大城市SZ;它有5個區(qū),分別為nanshan、futian、luohu、baoan、longgang;每個區(qū)都有多個圖書館,每個圖書館都有大量的圖書,每種書都會有多本,那么該城市要建一個圖書管理系統(tǒng)顯然需要非常大的內(nèi)存資源。通常同一本書會有多本,本文中叫做多個副本,以便表述;例如,《遙遠(yuǎn)的救世主》這本書總共有100本,我們就說有100個副本。

一本書通常有多個屬性,例如,書名、作者、ISBN、圖例、所屬圖書館、總數(shù)量、在館數(shù)量等等。如果每一本書的每一個副本,我們都創(chuàng)建一個對象來進(jìn)行管理,有些共有的屬性所占用的內(nèi)存是一種顯而易見的浪費(fèi)。那么,在這種場景下,使用享元模式就能極大的優(yōu)化圖書管理系統(tǒng)的內(nèi)存。所有類似場景使用享元模式都能奏效,如、游戲等。

通過通俗的場景描述了享元模式的作用,接下來,在技術(shù)層面來看看要怎樣實(shí)現(xiàn)。需要說明的是,該模式也可以用于其他設(shè)計語言,不限于JS。

首先,創(chuàng)建一個圖書類Book。

class Book {constructor(title, author, isbn) {this.title = title;this.author = author;this.isbn = isbn;}
}

如果不用享元模式,我們創(chuàng)建多個副本,簡單粗暴可能會這么實(shí)現(xiàn):

const book1 = new Book("遙遠(yuǎn)的救世主", "豆豆", "abc123");
const book2 = new Book("遙遠(yuǎn)的救世主", "豆豆", "abc123");
const book3 = new Book("遙遠(yuǎn)的救世主", "豆豆", "abc123");
const book4 = new Book("遙遠(yuǎn)的救世主", "豆豆", "abc123");

如果使用享元模式,一種實(shí)現(xiàn)方式如下:

const books = new Map();
const createBook = (title, author, isbn) => {const existingBook = books.has(isbn);if (existingBook) {return books.get(isbn);}const book = new Book(title, author, isbn);books.set(isbn, book);return book;
};

可以通過ISBN來判斷某種圖書的唯一性,通過createBook來創(chuàng)建某一種圖書。其他的副本我們可以通過addBook來實(shí)現(xiàn):

const bookList = [];const addBook = (title, author, isbn, region) => {const book = {...createBook(title, author, isbn),region};bookList.push(book);return book;
};addBook("遙遠(yuǎn)的救世主", "豆豆", "AB123", "nanshan");
addBook("遙遠(yuǎn)的救世主", "豆豆", "AB123", "longgang");
addBook("埃隆·馬斯克傳", "沃爾特·艾薩克森", "CD123", "nanshan");
addBook("埃隆·馬斯克傳", "沃爾特·艾薩克森", "CD123", "futian");
addBook("長安的荔枝", "馬伯庸", "EF123", "bao'an");console.log("圖書總數(shù):", bookList.length);
console.log("圖書種類數(shù):", books.size);

運(yùn)行結(jié)果:

請?zhí)砑訄D片描述

本文通過通俗的自然語言和實(shí)際的代碼示例,描述了flyweight pattern的原理和使用場景??稍谑纠幕A(chǔ)上結(jié)合實(shí)際場景進(jìn)行擴(kuò)展,來完成更復(fù)雜的程序設(shè)計。

http://www.risenshineclean.com/news/64664.html

相關(guān)文章:

  • 怎么做漫畫網(wǎng)站個人在百度上發(fā)廣告怎么發(fā)
  • 東莞企業(yè)網(wǎng)站建設(shè)預(yù)算大概多少seo軟件簡單易排名穩(wěn)定
  • 路由器當(dāng)服務(wù)器做網(wǎng)站搜索引擎調(diào)詞工具哪個好
  • 邢臺做網(wǎng)站地方宣傳推廣方式
  • 在線做文檔的網(wǎng)站百度推廣登錄官網(wǎng)
  • 專門做金融培訓(xùn)的網(wǎng)站有哪些臨沂seo排名外包
  • ifront做原型控件的網(wǎng)站軟文發(fā)稿系統(tǒng)
  • 網(wǎng)站界面用什么做的愛站網(wǎng)的關(guān)鍵詞是怎么來的
  • 在哪給人做網(wǎng)站企業(yè)如何做網(wǎng)站
  • 中國攝影官方網(wǎng)站思億歐seo靠譜嗎
  • 重慶大足網(wǎng)站建設(shè)百度搜索風(fēng)云榜總榜
  • 門戶建設(shè)開源軟件沈陽關(guān)鍵詞seo
  • 嘉定區(qū)做網(wǎng)站seo類目鏈接優(yōu)化
  • 套模板的網(wǎng)站多少錢關(guān)鍵詞排名優(yōu)化網(wǎng)站
  • 河南平臺網(wǎng)站建設(shè)seo推廣外包企業(yè)
  • 做影視網(wǎng)站用的封面網(wǎng)絡(luò)營銷的特征和功能
  • 網(wǎng)站icp備案信息是什么滄州網(wǎng)站建設(shè)推廣
  • 去哪里學(xué)習(xí)做網(wǎng)站關(guān)鍵詞查詢網(wǎng)址
  • 黃岡網(wǎng)站建設(shè)哪家便宜學(xué)網(wǎng)絡(luò)營銷
  • 小企業(yè)網(wǎng)站建設(shè)怎樣可以快速百度合伙人官方網(wǎng)站
  • 校園二手交易網(wǎng)站要怎么做呀結(jié)構(gòu)優(yōu)化設(shè)計
  • 河北今日疫情最新情況路由優(yōu)化大師官網(wǎng)
  • 公司網(wǎng)站建設(shè)和推廣無代碼網(wǎng)站開發(fā)平臺
  • 電影網(wǎng)站怎么做laravel關(guān)鍵詞排名的排名優(yōu)化
  • 什么網(wǎng)站可以找手工活做廣州營銷網(wǎng)站建設(shè)靠譜
  • 寧波企業(yè)網(wǎng)站開發(fā)百度seo教程
  • Nginx做跳轉(zhuǎn)到其他網(wǎng)站濟(jì)南網(wǎng)站建設(shè)哪家便宜
  • 手機(jī)網(wǎng)站廣告自己想開個網(wǎng)站怎么弄
  • 桐梓縣工程建設(shè)交易網(wǎng)站子域名在線查詢
  • 湛江網(wǎng)站關(guān)鍵詞優(yōu)化網(wǎng)絡(luò)營銷技巧和營銷方法