Android設計模式-21-享元模式

1. 定義

運用共享技術有效的支持大量細粒度的對象

2. 使用場景

系統(tǒng)中存在大量的相似對象

細粒度的對象都具備較接近的外部狀態(tài),而內部狀態(tài)與環(huán)境無關,也就是說對象沒有特定身份

需要緩沖池的場景

3. 優(yōu)缺點

優(yōu)點:

大幅度降低內存中對象的數(shù)量,提升性能減少內存

缺點:

為了使對象可以共享,需要將一些狀態(tài)外部化,使得程序邏輯復雜化,而且讀取外部狀態(tài)使得運行時間稍微變長

4. Android源碼中的使用

我們平時使用的Handler中的getPostMessage所得到的message對象就是通過享元模式創(chuàng)建的, 可以看下如下代碼:

可以看到Message對象并不是通過new去大量構建的,而是通過一個默認大小為50的對象池。

5. 實例演示

以購買火車票為例

1. 創(chuàng)建一個車票接口

2. 創(chuàng)建一個實現(xiàn)類-火車票

3創(chuàng)建車票的工廠類,使用享元模式

普通寫法每次都new會消耗資源和內存,甚至導致OOM

4. 使用享元創(chuàng)建實例,

我是今陽,如果想要進階和了解更多的干貨,歡迎關注公眾號”今陽說“接收我的最新文章

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容