1. <ul id="0c1fb"></ul>

      <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
      <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区

      RELATEED CONSULTING
      相關(guān)咨詢
      選擇下列產(chǎn)品馬上在線溝通
      服務(wù)時間:8:30-17:00
      你可能遇到了下面的問題
      關(guān)閉右側(cè)工具欄

      新聞中心

      這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
      MVP架構(gòu)初識

      張鴻洋MVP

      創(chuàng)新互聯(lián)主營林芝網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,成都app軟件開發(fā),林芝h5微信小程序定制開發(fā)搭建,林芝網(wǎng)站營銷推廣歡迎林芝等地區(qū)企業(yè)咨詢

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

      谷歌的MVP與一般的MVP的區(qū)別

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

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

      我總結(jié)的MVP架構(gòu)圖:

      MVP架構(gòu)初識

      感悟1:MVP中的角色職責(zé)分工

        MVP與MVC最大的區(qū)別就是MVC中Activity或Fragment,它的Model和View互相產(chǎn)生聯(lián)系,也有可能是交叉產(chǎn)生聯(lián)系,比如說網(wǎng)絡(luò)請求數(shù)據(jù)、讀取數(shù)據(jù)庫任何這些和獲取Model相關(guān)的操作都放在了Activity和

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

        MVP則通過Presenter,將Model的獲取從UI中分離出來,同時通過實(shí)現(xiàn)相應(yīng)的Interactor來獲取Model,再回調(diào)接口View的方法將InteractorImpl得到的數(shù)據(jù)回傳給UI組件。

        但是,MVP雖然比較優(yōu)秀,但是一開始會不適應(yīng)。因?yàn)镸VP真正的是面向接口編程。

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

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

        mvp的做法: 

           1)定義UI組件對應(yīng)的InterfaceView,定義方法void getData(List list);

             》參數(shù)為需要得到的數(shù)據(jù)

             》一般InterfaceView里的方法是沒有返回值的,因?yàn)樗哪康脑谟谕ㄟ^Interactor得到

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

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

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

              方法描述出來。

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

             》參數(shù)為請求數(shù)據(jù)所需要的參數(shù)

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

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

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

      感悟2:Presenter怎么得到Interactor的數(shù)據(jù)

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

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

          否的狀態(tài),那Presenter如何實(shí)時得到數(shù)據(jù)呢?

          讓Presenter實(shí)現(xiàn)監(jiān)聽器接口,將Interactor構(gòu)造的時候傳入,然后在不同狀態(tài)下回調(diào)。一般回調(diào)

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

        

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

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

         大張旗鼓地去為這個View再去創(chuàng)建Presenter和Interactor了。

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

      感悟4:在Presenter中實(shí)例化多個Interactor

         如果一個頁面中有多個網(wǎng)絡(luò)請求接口,可以在Presenter中實(shí)例化多個Interactor,每個Interactor負(fù)責(zé)處理一個接口,這樣體現(xiàn)了“單一職責(zé)”的設(shè)計(jì)原則。


      文章題目:MVP架構(gòu)初識
      文章分享:http://www.ef60e0e.cn/article/jpgddi.html
      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区
      1. <ul id="0c1fb"></ul>

        <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
        <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

        河津市| 饶河县| 台湾省| 丰镇市| 宁乡县| 司法| 榕江县| 荣昌县| 温泉县| 方城县| 象山县| 文水县| 偏关县| 安仁县| 青铜峡市| 朔州市| 宜兴市| 双峰县| 新津县| 丽江市| 拜城县| 宜兰市| 平陆县| 南溪县| 南丰县| 改则县| 乐陵市| 航空| 新丰县| 宁陵县| 墨脱县| 沭阳县| 西畴县| 巨野县| 祁阳县| 广河县| 喀喇沁旗| 修武县| 汪清县| 三穗县| 宣化县|