中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

MVP架構初識

發布時間:2020-07-08 15:41:58 來源:網絡 閱讀:507 作者:屠夫章哥 欄目:移動開發

張鴻洋MVP

http://blog.csdn.net/lmj623565791/article/details/46596109


谷歌的MVP與一般的MVP的區別

https://www.jianshu.com/p/14283d8d3a60



MVP入門小demo:http://blog.csdn.net/l2show/article/details/46659027




我總結的MVP架構圖:

MVP架構初識


感悟1:MVP中的角色職責分工

  MVP與MVC最大的區別就是MVC中Activity或Fragment,它的Model和View互相產生聯系,也有可能是交叉產生聯系,比如說網絡請求數據、讀取數據庫任何這些和獲取Model相關的操作都放在了Activity和

Fragment中,這些就顯得十分的臃腫。

  MVP則通過Presenter,將Model的獲取從UI中分離出來,同時通過實現相應的Interactor來獲取Model,再回調接口View的方法將InteractorImpl得到的數據回傳給UI組件。

  但是,MVP雖然比較優秀,但是一開始會不適應。因為MVP真正的是面向接口編程。

  舉一個例子:在Activity里請求一個接口,得到一個List,然后展示到ListView上。

  mvc的做法和我說的順序是一樣的

  mvp的做法: 

     1)定義UI組件對應的InterfaceView,定義方法void getData(List<Entity> list);

       》參數為需要得到的數據

       》一般InterfaceView里的方法是沒有返回值的,因為它的目的在于通過Interactor得到

       list也就是Model。在UI組件里直接實現這個方法,至于list是怎么獲取的,UI組件就不

        用管了,只要展示到View上即可。

       》針對接口編程就是思維比較跳躍,不是按步就班的一步步去實現。將要做的事件通過抽象

        方法描述出來。

     2) 定義Interactor接口,定義獲取InterfaceView里所需要的Model的抽象方法。

       》參數為請求數據所需要的參數

    3)定義Presenter接口,Presenter相當于InterfaceView與Interactor接口的紐帶。

      它里面定義的抽象方法,是連接InterfaceView與Interactor接口的。

      它的主要作用是執行InterfaceView中定義的方法。


感悟2:Presenter怎么得到Interactor的數據

  1)Interactor采用同步的形式獲取數據,那么直接在Interactor的接口上定義返回值即可。

  2)Interactor采用異步的形式獲取數據,這是大多數的情況。除了數據之外,還有請求數據成功與

    否的狀態,那Presenter如何實時得到數據呢?

    讓Presenter實現監聽器接口,將Interactor構造的時候傳入,然后在不同狀態下回調。一般回調

    方法是在UI線程中執行的,注意線程問題。

  

感悟3:不要一味的使用MVP

 1)如果Model十分地簡單(如WebView的一個url),或者是一個簡單的SP配置變量等等,就沒有必要

   大張旗鼓地去為這個View再去創建Presenter和Interactor了。

  2)如果Model是通過Intent等傳遞給View的,也不需要MVP。


感悟4:在Presenter中實例化多個Interactor

   如果一個頁面中有多個網絡請求接口,可以在Presenter中實例化多個Interactor,每個Interactor負責處理一個接口,這樣體現了“單一職責”的設計原則。




向AI問一下細節
推薦閱讀:
  1. 初識UNIX
  2. puppet 初識

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

迁安市| 蒲城县| 靖江市| 革吉县| 南宫市| 静海县| 灵川县| 民权县| 新疆| 田阳县| 株洲县| 遵化市| 会昌县| 泗阳县| 扶沟县| 天等县| 曲松县| 固安县| 宁安市| 湖南省| 高青县| 十堰市| 临湘市| 中牟县| 林州市| 通州市| 赤城县| 平利县| 牟定县| 梁山县| 常山县| 宁河县| 弥勒县| 调兵山市| 化德县| 嵊泗县| 皮山县| 驻马店市| 阿拉善盟| 扶风县| 右玉县|