這篇文章主要講解了“web享元模式怎么理解”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“web享元模式怎么理解”吧!
10年積累的成都做網(wǎng)站、網(wǎng)站設(shè)計(jì)經(jīng)驗(yàn),可以快速應(yīng)對(duì)客戶對(duì)網(wǎng)站的新想法和需求。提供各種問題對(duì)應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先網(wǎng)站制作后付款的網(wǎng)站建設(shè)流程,更有西鄉(xiāng)免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
意圖
通過共享的方式避免在不同對(duì)象之間重復(fù)構(gòu)建相同的數(shù)據(jù)或?qū)ο蟆?/p>
動(dòng)機(jī)
面向?qū)ο笤O(shè)計(jì)技術(shù)的應(yīng)用使程序員在處理復(fù)雜系統(tǒng)時(shí),可以將系統(tǒng)中的個(gè)體看作一個(gè)一個(gè)獨(dú)立的對(duì)象,從而大大降低了處理的復(fù)雜性。但是這種處理有時(shí)候也會(huì)帶來一些問題。
例如,最近經(jīng)??梢钥吹绞褂么罅康臒o人機(jī)在空中擺造型的例子,幾千個(gè)無人機(jī)在空中擺出各種圖案,場(chǎng)景那叫一個(gè)壯觀。我們今天就以無人機(jī)的通訊為例說明享元模式。首先提兩個(gè)假設(shè):
無人機(jī)數(shù)量非常巨大,以至于需要多個(gè)品牌的無人機(jī)合作演出。
不同廠家生產(chǎn)的無人機(jī)可以接受的命令的種類,形式,通訊方式都會(huì)有所不同。
為了能夠以同樣的方式控制這些無人機(jī),我們可以設(shè)計(jì)一個(gè)通訊協(xié)議的轉(zhuǎn)換類,利用者發(fā)出的指令經(jīng)過這個(gè)轉(zhuǎn)換類的翻譯之后,轉(zhuǎn)換為各個(gè)廠家,型號(hào)使用的協(xié)議之后再發(fā)出。接下來只要為每臺(tái)無人機(jī)準(zhǔn)備好協(xié)議轉(zhuǎn)換的數(shù)據(jù)即可。但是我們面對(duì)的是成千上萬(wàn)的無人機(jī),為每臺(tái)無人機(jī)準(zhǔn)備這樣數(shù)據(jù)就需要消耗大量的內(nèi)存。
這個(gè)問題可以通過享元模式來解決。由于同一廠家,同一型號(hào)的無人機(jī)可以接受的命令的種類,形式,通訊方式完全一致,所以我們只要為每個(gè)廠家的每個(gè)型號(hào)提供唯一的一個(gè)轉(zhuǎn)換模塊就可以了。
每次需要使用Translator的時(shí)候,利用者調(diào)用以廠家和型號(hào)為參數(shù),調(diào)用TranslatorFactory的GetTranslator方法,如果TranslatorFactory已經(jīng)持有與廠家,型號(hào)相匹配的Translator則直接將其返回,如果沒有則生成相應(yīng)的Translator并返回。這樣就保證了每個(gè)廠家,型號(hào)的無人機(jī)只會(huì)生成一個(gè)Translator,從而避免了內(nèi)存空間的浪費(fèi)。
感謝各位的閱讀,以上就是“web享元模式怎么理解”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對(duì)web享元模式怎么理解這一問題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!