MVP的三層
- View層: 對應於Activity/Fragment,負責View的繪製以及與用戶交互
- Presenter層: 負責完成View與Model間的交互
- Model層: 實體模型、與數據進行交互,對數據進行加工處理
第一步:定義兩個基類,這兩個接口分別是所有View和Presenter的基類: BaseView和BasePresenter。
BaseView
中主要定義一些通用的界面方法,如顯示/隱藏進度條、顯示提示信息等。BasePresenter
中也可以定義一些通用的方法,如初始化方法等。
public interface BaseView {
//加載數據出錯是調用
void showLoadFailureMsg(String errorMsg);
}
public interface BasePresenter {
//可以什麼都不用寫
}
第二步:定義契約接口,使用契約接口是爲了更清晰,更直觀,一目瞭然。維護方便。
public interface NewsContract {
//新聞View
interface INewsView extends BaseView{
//獲取得到網絡數據顯示在界面上 NewsEntity--實體類
void showNewsDetail(NewsEntity newsEntity);
}
//新聞Presenter
interface INewsPresenter extends BasePresenter{
/**
* 傳遞參數到Model去加載網絡數據
* @param page 頁數
* @param rows 每頁顯示的個數
*/
void loadNewsList(int page,int rows);
}
}
第三步:Presenter層
定義一個藉口繼承BasePresenter,寫一些你需要的接口,