国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

詳細(xì)的Dagger2+MVP融合,一行一行分析,一點(diǎn)一點(diǎn)進(jìn)步,之一

2019-11-07 23:30:44
字體:
供稿:網(wǎng)友

    Dagger2是一個(gè)比較新、比較流行的依賴注入框架,關(guān)于依賴注入這里就不解釋了,百度一大推。這里也不解釋Dagger2的環(huán)境配置和粗淺的使用方式。

    MVP是google官方推薦使用應(yīng)用技術(shù)框架,它將之前Activity(Fragment)里面的邏輯分離出來,使用PResenter連接邏輯和界面顯示,可以百度一下使用方法,這里也不詳述。

    本文主要講解一下Dagger2和MVP的配合,通過講解一個(gè)簡單的例子,來描述一下在項(xiàng)目中應(yīng)該如何去處理MVP邏輯和在哪里進(jìn)行Dagger2的注入,包、類應(yīng)該如何排版,關(guān)系應(yīng)該如何處理,這樣在以后的維護(hù)中提供最大化的簡明快捷。

    (注:此方式只是我個(gè)人認(rèn)為比較舒適的、邏輯區(qū)分比較分明的方式,僅供參考)

    請先下載項(xiàng)目的源代碼,沒有上傳配置文件,只有源碼,所以dagger2、OkHttp和Retrofit的配置就自己動手了!

    框架簡介:該Demo使用的是MVP框架,外加依賴注入,為了Demo的普遍性,使用OkHttp、Retrofit進(jìn)行網(wǎng)絡(luò)請求。我們大家都知道,使用MVP或者Dagger,或者任何一個(gè)趨于成熟的技術(shù)框架,都是為了某一個(gè)目的而會在開發(fā)期間添加一些額外的工作量,這都是為了日后的維護(hù)工作能夠更好進(jìn)行,減少維護(hù)成本,加快開發(fā)節(jié)奏!MVP和Dagger都是為了解耦而產(chǎn)生的,解耦的手段就是新增一些輔助文件,或按功能、或按模塊、或按邏輯的進(jìn)行更細(xì)致的劃分,劃分的更細(xì),新增的java源文件也就更多了,所以我們打開下載的項(xiàng)目源碼,就可以看到,里面的分包有很多,其實(shí)這個(gè)Demo就只有三個(gè)界面,每個(gè)界面只有兩個(gè)控件,點(diǎn)擊事件要么就是顯示一行文本,要么就是模擬網(wǎng)絡(luò)請求得到一串字符串,很簡單的功能,但當(dāng)你學(xué)會MVP、Dagger之后,再去看項(xiàng)目中的代碼,你會發(fā)現(xiàn),如果新增、刪除一些需求,你可以很快的定位到某個(gè)文件夾下面的某個(gè)文件,甚至某行代碼都可以。

    說了這么多,進(jìn)入正題,請看下面的分析:

    首先總體分析項(xiàng)目中的包,大致的類、父類的關(guān)系,總包“test.zyj.com.study”下面,分別有activity、model、other、utils,根據(jù)名稱就知道每個(gè)包下面是干什么的,看同級下面的類,一個(gè)應(yīng)用的application類,兩個(gè)MVP中P、V基類接口,然后還有一個(gè)Dagger中的Module類,清晰明了。很多一些大的項(xiàng)目,其文件結(jié)構(gòu)也和這個(gè)差不多,很多都是在Applicatin同級下面會有一些基類接口,其作用定義為為整個(gè)應(yīng)用提供某些對象或者功能:

文件結(jié)構(gòu)

    每一個(gè)界面,我們都當(dāng)它是一個(gè)單獨(dú)的模塊,模塊中間的通信,我們通過參數(shù)進(jìn)行傳遞

    可以看一下activity下面的類:

    三個(gè)包,oneActivity、secondActivity和threeActivity,可以看到應(yīng)用只包含三個(gè)界面。

    數(shù)據(jù)模塊,數(shù)據(jù)模塊主要包含網(wǎng)絡(luò)請求、實(shí)體對象,里面包含了應(yīng)用所有需要的數(shù)據(jù)來源。也是按照模塊功能進(jìn)行區(qū)分的!

    剩下來就是一些其它附加功能的類了,沒什么好說的,可以直接看代碼!

    項(xiàng)目的總體結(jié)構(gòu)大致如上了,我們在心中有了一個(gè)大概的了解,然后接下來仔細(xì)分析里面的分層處理,解耦處理了!

源碼下載

詳細(xì)的Dagger2+MVP融合,一行一行分析,一點(diǎn)一點(diǎn)進(jìn)步,之二

詳細(xì)的Dagger2+MVP融合,一行一行分析,一點(diǎn)一點(diǎn)進(jìn)步,之三

詳細(xì)的Dagger2+MVP融合,一行一行分析,一點(diǎn)一點(diǎn)進(jìn)步,之四


發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 云浮市| 新化县| 广宗县| 辉南县| 九寨沟县| 塘沽区| 思南县| 安乡县| 武平县| 皮山县| 桃源县| 和林格尔县| 千阳县| 大悟县| 三江| 东至县| 芜湖县| 襄樊市| 伊宁市| 元江| 沧州市| 扬中市| 遂川县| 南丰县| 洮南市| 旬邑县| 洮南市| 册亨县| 丰镇市| 高雄市| 三原县| 南岸区| 二连浩特市| 新巴尔虎右旗| 英吉沙县| 昌邑市| 涞水县| 永年县| 蒲城县| 石台县| 武功县|