Android MVP 框架
生活随笔
收集整理的這篇文章主要介紹了
Android MVP 框架
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
為什么80%的碼農都做不了架構師?>>> ??
前言
根據網絡上的MVP套路寫了一個辣雞MVP DEMO
用到的
- android studio MVPHelper插件,方便自動生成框架代碼
- rxjava
- retrofit
什么是MVP
MVP就是英文的Model View Presenter,然而實際分包并不是只有這三個包,還有一個契約Contract接口包,根據項目情況還可以分更多包
- Contract
- Model
- View 指activity和fragment,需要實現View接口
- Presenter
Contract
定義Model、View、Presenter接口的方法,所有接口都在這里定義
public interface HomeContract {interface Model {void getDate(final BaseCallBack<TitleListBean> callBack);}interface View {//多個事件定義多個刷新頁面方法void refreshUi(List<TitleListBean.ContentsBean> list);}interface Presenter {void load();} }Model
網絡及本地數據請求操作,包括遠程數據和本地數據的請求處理
遠程數據用retrofit+rxjava實現,本地數據用room+rxjava,無論用什么方法最后都要通過callback返回結果
Presenter
可以理解為界面的點擊、加載等事件的實現
作為view與model的橋梁,初始化的時候需要傳入view對象和new一個model對象
通過view調用presenter,presenter調用model,model返回數據給presenter,presenter再返回數據給view展示
CallBack
這個接口屬于Presenter層,也是model與view的橋梁,把model處理的結果告訴presenter,presenter根據處理結果告訴view刷新頁面
public interface PresenterBaseCallBack<T> {void onResponse(T response);void onFailure(String error); }VIEW
創建presenter對象,view的所有事件就是對應presenter的方法
public class HomeFragment extends BaseFragment implements HomeContract.View {private HomeContract.Presenter presenter;@Overrideprotected void initView(Bundle savedInstanceState) {presenter = new HomePresenter(this,getContext()); //初始化Presenter,包含view和modelpresenter.load(); //Presenter層邏輯處理}@Overridepublic void refreshUi(List<TitleListBean.ContentsBean> list) { //數據獲取成功后的頁面刷新//list 就是返回的數據,執行頁面刷新} }一個辣雞Demo
戳這里
轉載于:https://my.oschina.net/AStar/blog/2244802
總結
以上是生活随笔為你收集整理的Android MVP 框架的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 梦到捡钱有真有假是什么意思
- 下一篇: 梦到好朋友怀孕生孩子是什么意思