1.看檔案結構。
model層:
資料類;class
接口類;interface
接口實作類;implement
presenter層:
接口類(model和view);interface
接口實作類;implement
view層:
activity;lifecycle+implement
接口層;interface
2.了解三層作用
model:用來處理有關資料的方法,可以調用presenter中的實作類
presenter:處理有關資料和視圖的邏輯操作
view:處理視圖的變化和activity的生命周期
3.了解調用關系
總而言之:
model調用presenter,presenter調用model和view,view調用presenter。
model:
接口實作類可以調用presenter接口類裡面的邏輯方法。
也就是說,除了資料方面可以直接指派使用變量操作之外(String username = user.getUsername();)
其他任何代碼都建議直接調用presenter裡面提供的接口函數
presenter:
接口類分别有兩種,一種是為model層提供的接口,一種是為view層提供的接口。
同一頁面的model接口類和view接口類可以同時在同一個接口實作類中實作。
在接口實作類中隻有邏輯和對model、view接口類函數的調用
view:
接口實作類和activity生命周期都在activity中實作。
4.如何由0到1
- 建立檔案夾進行分類(model\view\presenter),然後建立對應的java類。
- 從activity開始寫,寫到哪裡需要什麼就去對應的層補函數去。
- 總而言之,入門還是很easy的。
5.總結
從代碼的角度來說,MVP的模式可以實作解耦,而且非常easy,分層比較好。
至于缺點嘛,我重構個項目看看有沒有什麼問題。希望這個repo會有被我修改的機會。
掰掰ヾ(•ω•`)o