一、引言
Smile項目是我自己的一個練習項目,對自己這一年多工作的一個總結(jié)。同樣這個項目參考了許多APP,有些甚至是原封不動照搬的,我將鏈接出源項目地址,對這些照搬的項目只是自己覺得好的地方記錄想來,并加入注釋,看別人的代碼也是一種學(xué)習嘛。今后我希望服務(wù)端的代碼也能夠由自己來完成。
二、項目結(jié)構(gòu)
1.api----->請求地址接口,網(wǎng)絡(luò)框架采用的Retrofit2.0
2.appexception------>自定義的異常類
3.config--------->一些配置,包括工具類都放在里面
4.mvp——------>模仿公司的mvp架構(gòu)
5.googlemvp------>模仿googlemvp進行的實踐
6.其他的包都是按照業(yè)務(wù)進行的劃分
三、MVP架構(gòu)的理解
我覺得MVP就是就是一種接口回調(diào)的思想,它將業(yè)務(wù)模塊和業(yè)務(wù)進行分離,使業(yè)務(wù)邏輯不在和頁面進行混淆。網(wǎng)上有許多講解mvp思想文章:
https://segmentfault.com/a/1190000003927200
http://www.lxweimin.com/p/9a6845b26856
簡單的拿我的例子說明一下googlemvp的思路:
1.首先有兩個Base類,一個是BaseView:
負責注入Presenter對象:
2.BasePresenter:
start方法負責一些需要預(yù)加載的任務(wù)
3.契約類
針對不同的業(yè)務(wù)需要不同的契約接口:它將Presenter層和View層進行關(guān)聯(lián),在同一個接口中維護起來也很方便
4.在Presenter的構(gòu)造方法中注入Presenter對象。
在new Presenter時,同時給createPresenter方法注入presenter對象,這樣頁面就可以拿到presenter對象了。至于什么時候new一個paresnter對象呢?如果是activity,在onCreate方法中實例化一下,如果是fragment,在負責管理這個fragment中實例化。