當(dāng)每次寫代碼時(shí)有沒有一種到處都是數(shù)據(jù),使用的時(shí)候需要到處傳遞的感覺。比如我有一份數(shù)據(jù)舞吭,有好幾個(gè)頁(yè)面都需要使用,好的做法并不是在第一次使用時(shí)去請(qǐng)求析珊,在后邊不停的去傳遞羡鸥。類似于activity的context,可以將之提取成一個(gè)單例忠寻,在這個(gè)單例中去操作這些數(shù)據(jù)惧浴。
之前都是自己寫了一個(gè)單例,然后每個(gè)數(shù)據(jù)都寫一個(gè)屬性放在其中奕剃,這太有損程序猿的威風(fēng)衷旅。
所以自己將數(shù)據(jù)放在了map中捐腿,并且根據(jù)存儲(chǔ)的Class對(duì)象分類存放。
使用時(shí)根據(jù)需要的Class對(duì)象從map中去取柿顶,map放在了單例之中茄袖。
也就是整個(gè)程序各處都可以使用。
當(dāng)然依然可以添加緩存嘁锯,緩存與否根據(jù)自己的需要來(lái)做宪祥,可以在設(shè)置數(shù)據(jù)之后直接設(shè)置緩存。
聯(lián)網(wǎng)獲取數(shù)據(jù)之后直接將數(shù)據(jù)轉(zhuǎn)化為jsonobject家乘,放入存儲(chǔ)蝗羊。當(dāng)需要使用時(shí)直接去取即可。
上邊的東西都都已經(jīng)寫在了我封裝的庫(kù)中仁锯,并且做了兩個(gè)版本使用耀找,
一個(gè)版本只有數(shù)據(jù)的存儲(chǔ),其他的緩存聯(lián)網(wǎng)都沒有做业崖,根據(jù)自己的需要使用涯呻,
另外一個(gè)版本添加了聯(lián)網(wǎng),聯(lián)網(wǎng)之后的數(shù)據(jù)轉(zhuǎn)換腻要,以及緩存的處理。
不多說(shuō)放個(gè)鏈接看看涝登。
使用及其簡(jiǎn)單雄家,看看基本都會(huì)了,大概的說(shuō)說(shuō)
取數(shù)據(jù)胀滚,使用 ?StoreData.getStore().getDatas(DataBean.class,null)趟济;
最后一個(gè)是回調(diào),取數(shù)據(jù)取不到時(shí)留下這個(gè)回調(diào)函數(shù)咽笼,當(dāng)數(shù)據(jù)有時(shí)會(huì)來(lái)通知取數(shù)據(jù)的一方來(lái)再次取數(shù)據(jù)顷编,回調(diào)函數(shù)中可以設(shè)置是否每次刷新都通知來(lái)取〗P蹋可以隨時(shí)自己不需要時(shí)將回調(diào)函數(shù)清除媳纬,當(dāng)然需要這個(gè)引用。
還有另外一種施掏,取數(shù)據(jù)的方式StoreData.getStore().getDatas(tag钮惠,DataBean.class,null);為取得數(shù)據(jù)設(shè)置tag七芭,obj類型的素挽,隨便你設(shè)置。
當(dāng)不需要時(shí)狸驳,根據(jù)tag直接清空取數(shù)據(jù)的引用预明。防止內(nèi)存泄露缩赛。
現(xiàn)在還又幾個(gè)問(wèn)題需要修復(fù)的。
一撰糠、清除數(shù)據(jù)的接口還沒有寫酥馍,但是可以使用單例中的方法直接將其制為空
二、數(shù)據(jù)設(shè)置的順序沒有好好思量窗慎,可以根據(jù)頭的時(shí)間設(shè)置物喷,先返回的不能更新后返回的。
三遮斥、本地?cái)?shù)據(jù)不能更新聯(lián)網(wǎng)數(shù)據(jù)
四峦失、緩存的設(shè)置沒有很好的思量
五、數(shù)據(jù)一直沒有到達(dá)時(shí)是否需要一直存在回調(diào)對(duì)象等待數(shù)據(jù)更新
這樣存放數(shù)據(jù)的意義:
我思考的這樣存放數(shù)據(jù)术吗,最重要尉辑,可以將存數(shù)據(jù)與取數(shù)據(jù)分開,我存數(shù)據(jù)可以不考慮數(shù)據(jù)是否有人需要较屿,只要未來(lái)有人有可能需要就可以存放隧魄,當(dāng)然這里存放的數(shù)據(jù)盡量是小的數(shù)據(jù),大數(shù)據(jù)不適合長(zhǎng)期存放隘蝎。取數(shù)據(jù)也不需要考慮有沒有數(shù)據(jù)购啄,我只需要每次實(shí)現(xiàn)有數(shù)據(jù)和沒有數(shù)據(jù)的的接口即可。當(dāng)然這里聯(lián)網(wǎng)請(qǐng)求的進(jìn)度條就有了一些問(wèn)題嘱么,但是也不是很大狮含。
這里只是提出了這么一種想法,希望可以拋磚引玉曼振。也可以讓自己有所突破
歡迎大家指正几迄,歡迎大家批評(píng)。
技術(shù)只有不斷的改正才能有所提升冰评。