MVP 實戰

那麼咱們下面就要將這個類中的代碼改寫爲 MVP 的寫法,回顧上面說起的 MVP 架構的思想,它是將 View 層與 Model 層完全隔離,意味着 View 和 Model 都再也不持對方的引用,它們經過一個第三者 Presenter 來代理事物的傳遞,因此 Presenter 層會持有 Model 與 View 層的引用,這是第一步。網絡

    第二步,是將它們之間的聯繫抽象出來,以接口的方式相互調用,因此 Model 、View、Presenter 各自擁有本身的接口和抽象方法,因此這就會無形的多出了三個接口類,這也就是 MVP 的缺點之一。因此,爲了較少的建立接口類,咱們就給這三層接口定義了一個契約接口,把它們更加緊密的結合在一塊兒,方法查看,例如代碼這樣寫:架構

(1)契約類:代理

package com.test.mvp.mvpdemo.mvp.v1;

import okhttp3.Callback;

/**
* 契約接口,能夠很直觀的看到 M、V、P 層接口中提供的方法
*/
public interface MainContract {
interface IMainModel {
void requestBaidu(Callback callback);
}

interface IMainView {
void showDialog(http://www.my516.com);

void succes(String content);
}

interface IMainPresenter {
void handlerData();
}
}
    而後,再將以前的一個單獨的 MainActivity 分包,分別建立 Model 層實現類、Presenter 層實現類、MainActivity 就至關於View 層,這樣一來架構就更加清晰明瞭:接口

 

    接着,分別給這三層實現咱們剛剛寫的 MainContract 中相對應的接口,咱們先來看看 Model 層,它就主要負責網絡請求,也就是咱們的 OKHttp 請求到百度首頁的一個操做,很簡單的代碼。
--------------------- it

相關文章
相關標籤/搜索