有考慮用封裝好的mvp框架,但是考慮到擴(kuò)展性,還是自己寫的好改。
那就自己來吧。
mvp和mvc最大的不同在于解耦。
mvc里,一個activity上千行,而且代碼的邏輯和UI操作都混在一起。
代碼的可維護(hù)性很差。
而mvp,activity里只做UI相關(guān)操作,通過實現(xiàn)的接口來確定執(zhí)行那些UI操作。
Presenter專門用來做網(wǎng)絡(luò)請求。 ? ?只要方法注釋寫好,結(jié)構(gòu)會更加清晰。
而且更利于做單元測試。。雖然沒怎么做過。。
考慮到性能問題,我沒有再基類里創(chuàng)建context,如果presenter需要context,那么子類重寫構(gòu)造方法,傳遞一個進(jìn)來即可。
IBaseView里做顯示隱藏加載框的方法。
子類再做對應(yīng)業(yè)務(wù)的view處理。
還創(chuàng)建了一個只請求一次的view的接口繼承自IBaseView,這樣有些簡單的頁面,不用創(chuàng)建view接口。
好啦上代碼
用來做網(wǎng)絡(luò)請求錯誤處理的基類。
convertfactory改一下,可以直接生成bean對象。
之所以我這里生成String,是為了處理的時候更加靈活。
順帶提一句,okhttp的log工具真是太好用了。