使用Glide.with().load.into()
就像一個自然語言一樣,描述了一個事情。
那么它的代碼的內(nèi)部是不是也是像自然語言一樣描述了一個事情呢?
分解Glide.with();做了什么事情?
調(diào)用Glide.with() 返回的RequestManager。
調(diào)用RequestManager.load()返回的Request
調(diào)用Request.into()返回的
于是我們對設(shè)計進行自然語言的翻譯
Glide with () load () into ()
Glide with在界面里(Activity/Fragment) 里加載一個圖片(url) into到一個圖片控件里(ImageView)
是的,我需要做一個請求的管理。我想到了RequestManager 將負(fù)責(zé)管理這一些請求的事情。
因為我的請求是依賴在界面Activity或是某個View上的,我想,我在創(chuàng)建這樣的管理者,是應(yīng)該同樣依賴于它們的。所以,我在創(chuàng)建RequestManager時候要求有一個參數(shù),能夠使我獲得對它們的依賴
那么,我將要依賴誰呢,在這里,我列出它們將會在什么場景下被使用
它在一個View被使用
Activity里被使用
Fragment里被使用
兼容版本的Fragment被使用,見鬼的,我還要兼容低版
View里也可能被使用
哦,我要做的東西太多了,最終我還是一人承擔(dān)了所有,所以,偉大了。
是的,我依賴了場景,創(chuàng)建了RequestManger管理者,后面要開始工作了
像生產(chǎn)一樣,我需要一個材料
于是我大聲喊,給我一個指引,告訴我去哪里拉圖片。
他給了一個,見鬼的,圖片的指引地址也是千奇百怪。好的,交給我們處理吧
我還是再問一下,告訴我,這個拉回來的圖片放在哪里。
他給了一個,美妙的,這個地方只有一個ImageView。我要做的工作少極了。
這是我的基本處理了
分三步
1.告訴我,我在哪里,現(xiàn)場是什么環(huán)境?
2.告訴我,我去哪里拉圖片?
3.告訴我,拉回來的圖片放哪兒?
我就是這樣,完成了。
你能看得明白這里的設(shè)計分解嗎
針對一種這樣的場景,需要加載(異步)一類數(shù)據(jù),然交給目標(biāo)處理(顯示/儲存)
with.load.save