溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何用Python實現(xiàn)享元模式

發(fā)布時間:2022-01-13 16:15:22 來源:億速云 閱讀:142 作者:iii 欄目:大數(shù)據(jù)

這篇文章主要介紹“如何用Python實現(xiàn)享元模式”,在日常操作中,相信很多人在如何用Python實現(xiàn)享元模式問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”如何用Python實現(xiàn)享元模式”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

示例代碼

首先是Flyweight相關類:

如何用Python實現(xiàn)享元模式

Flyweight主要是定義了一個適用外部狀態(tài)的operation方法,接下來ConcreteFlyweight具體實現(xiàn)了這個方法,代碼中將外部狀態(tài)疊加在對象的輸出上;另外一個UnsharedConcreteFlyweight是非共享具象類,它的輸出只輸出對象自身的狀態(tài)。

如果只到這一步的話,和享元并沒有太大的關系,接下來是關鍵:

如何用Python實現(xiàn)享元模式

代碼中為每個對象賦予了不同的外部狀態(tài)。接下來是程序輸出:

前兩個輸出來自于同一個對象,但是輸出不同的外部狀態(tài),后面三個輸出分別來自不同的對象。

效果

使用享元模式可以節(jié)約不同使用者持有相同數(shù)據(jù)時造成的內存空間浪費,這種對象越多,效果越明顯。但是需要注意的是,管理外部狀態(tài)也需要執(zhí)行時間和內存空間的代價,在實際使用的時候需要計算得失之后再決定。

另外一種情況是由于軟件的需求在使用者之間共享對象,這時享元模式可以作為實現(xiàn)方式的一個可選項。當然了,這種情況下效率和空間就不是第一位的因素了。

到此,關于“如何用Python實現(xiàn)享元模式”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續(xù)學習更多相關知識,請繼續(xù)關注億速云網站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經查實,將立刻刪除涉嫌侵權內容。

AI