您好,登錄后才能下訂單哦!
這篇文章主要講解了“web享元模式怎么理解”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“web享元模式怎么理解”吧!
意圖
通過共享的方式避免在不同對象之間重復構建相同的數據或對象。
動機
面向對象設計技術的應用使程序員在處理復雜系統時,可以將系統中的個體看作一個一個獨立的對象,從而大大降低了處理的復雜性。但是這種處理有時候也會帶來一些問題。
例如,最近經常可以看到使用大量的無人機在空中擺造型的例子,幾千個無人機在空中擺出各種圖案,場景那叫一個壯觀。我們今天就以無人機的通訊為例說明享元模式。首先提兩個假設:
無人機數量非常巨大,以至于需要多個品牌的無人機合作演出。
不同廠家生產的無人機可以接受的命令的種類,形式,通訊方式都會有所不同。
為了能夠以同樣的方式控制這些無人機,我們可以設計一個通訊協議的轉換類,利用者發出的指令經過這個轉換類的翻譯之后,轉換為各個廠家,型號使用的協議之后再發出。接下來只要為每臺無人機準備好協議轉換的數據即可。但是我們面對的是成千上萬的無人機,為每臺無人機準備這樣數據就需要消耗大量的內存。
這個問題可以通過享元模式來解決。由于同一廠家,同一型號的無人機可以接受的命令的種類,形式,通訊方式完全一致,所以我們只要為每個廠家的每個型號提供唯一的一個轉換模塊就可以了。
每次需要使用Translator的時候,利用者調用以廠家和型號為參數,調用TranslatorFactory的GetTranslator方法,如果TranslatorFactory已經持有與廠家,型號相匹配的Translator則直接將其返回,如果沒有則生成相應的Translator并返回。這樣就保證了每個廠家,型號的無人機只會生成一個Translator,從而避免了內存空間的浪費。
感謝各位的閱讀,以上就是“web享元模式怎么理解”的內容了,經過本文的學習后,相信大家對web享元模式怎么理解這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。