UML如下:
- DiskCache
定義了從磁盤緩存中寫入和讀取的接口赘淮。 - DiskLruCache
基于文件系統(tǒng)的一個有限空間的緩存,每一個緩存項(xiàng)都有一個字符串的鍵和一個固定數(shù)量的值耿眉,每個鍵必須匹配正則表達(dá)式([a-z0-9_-]{1,120})。值可以是字節(jié)序列想鹰,隨機(jī)流或者文件该互。內(nèi)部也是基于LRU算法,底層由LinkedHashMap實(shí)現(xiàn)辕宏。 - Factory
DiskCache工廠接口畜晰,這里主要是為了延遲創(chuàng)建磁盤緩存。 - DiskLruCacheFactory
在指定的磁盤緩存目錄中創(chuàng)建基于DiskLruCache的磁盤緩存瑞筐。 - InternalCacheDiskCacheFactory
在內(nèi)部磁盤緩存目錄中創(chuàng)建基于DiskLruCache的磁盤緩存凄鼻。 - DiskLruCacheWrapper
默認(rèn)的磁盤緩存實(shí)現(xiàn),其內(nèi)部使用了DiskLruCache聚假,基于LRU算法块蚌。 - SafeKeyGenerator
從{@link com.bumptech.glide.load.Key}生成并緩存安全且唯一的字符串文件名的類。 - DiskCacheAdapter
一個簡單的DiskCache實(shí)現(xiàn)類膘格,所有實(shí)現(xiàn)均為空實(shí)現(xiàn)峭范。 - DiskCacheProvider
一個接口,提供了一個獲取DiskCache實(shí)例的方法瘪贱。 - LazyDiskCacheProvider
實(shí)現(xiàn)了DiskCacheProvider纱控,具體實(shí)現(xiàn)了構(gòu)造DiskCache實(shí)例的過程,具體的構(gòu)造是由內(nèi)部的一個DiskCache.Factory成員變量負(fù)責(zé)構(gòu)建菜秦。
在工程中甜害,我們的DiskCache的創(chuàng)建流程是由一個叫DiskCacheProvider的類實(shí)現(xiàn)的,它內(nèi)部需要一個DiskCache.Factory對象球昨,默認(rèn)使用的Factory是InternalCacheDiskCacheFactory尔店,最終對應(yīng)的DiskCache的實(shí)現(xiàn)類就是DiskLruCacheWrapper。當(dāng)然我們可以在GlideBuilder的setDiskCache通過設(shè)置自己的DiskCache.Factory褪尝,從而實(shí)現(xiàn)其build方法闹获,來定義自己的DiskCache實(shí)現(xiàn)。