在項目中怎么靈活使用Dagger?

推薦:看到如此多的 MVP+Dagger2+Retrofit+Rxjava 項目, 輕松拿 star, 心動了嗎? 看到身邊的朋友都已早早在項目中使用這些技術(shù), 而你還不會, 失落嗎?
MVPArms 是一個 MVP+Dagger2+Retrofit+Rxjava 可配置化快速集成框架(目前 Dagger 應(yīng)用最復(fù)雜可配置化極強的集成框架), 自帶上萬字 文檔 以及 一鍵生成 MVPDagger2 文件等功能, 成熟穩(wěn)定且已有上千個商業(yè)項目接入, 累計 5k+ star(全球第一 MVP 框架), 現(xiàn)在你只用專注于邏輯, 其他都交給 MVPArms, 快來構(gòu)建自己的 MVP+Dagger2+Retrofit+Rxjava 項目吧!

原文地址: http://www.reibang.com/p/6a2c15a0c2b5

前言

最近介紹Dagger的文章挺多的,大多介紹的都是用法和注解的意義,在附帶一個小Demo,把剛學(xué)習(xí)的開發(fā)者看的云里霧里的,看完還是不知道怎么結(jié)合在項目中使用?什么時候在項目中用?在項目中的使用場景是什么?

架構(gòu)圖

Architecture

這是本人寫的MVP+Dagger框架MVPArms的架構(gòu)圖,通過Dagger來為MVP提供所需要的一切類和接口,本框架的初衷是讓開發(fā)者更好的學(xué)習(xí)及使用此類開發(fā)模式,如果不理解為什么要使用MVP+Dagger來開發(fā)項目,可以先看這篇文章

對比

之前我看了幾個使用MVP+Dagger+Retrofit開發(fā),并且有一定star量的開源項目,所以對比了下我的框架,有以下幾點:

  1. 使用Dagger的場景太少了,大部分只是使用Dagger注入MVP類,并且有些Retrofit都是自己new,并沒有使用Dagger管理,甚至有些使用一次接口就retrofit.create(ApiService.class)一次,這個本可以使用Dagger將它作為單例來調(diào)用的

  2. 有一些設(shè)計的ComponentModule完全只是用來注入Activity和一些單例

@ActivityScope
@Component(modules = {ActivityModule.class},dependencies = {AppComponent.class})
public interface ActivityComponent {
    void inject(AActivity activity);
    void inject(BActivity activity);
    void inject(CActivity activity);
    ...
}

只要多一個Activity,他就可以一直重載inject方法,于是就可以用一組component,module來為所有Activity注入,但是如果遇到Activity需要臨時注入一些其他的組件,并且每個Activity要注入的組件都不一樣,就沒辦法了,缺少靈活性

  1. 還是和第2條有關(guān),如果只有一個Module,Dagger就無法根據(jù)每個Presenter的需要,提供多個不同的Model,比如這個Presenter使用過這個接口,并且緩存已經(jīng)在Model中寫好,其他Presenter如果也要用到這個接口,就可以直接重用這個Model,MVP最大的好處之一就是可以重用MP

  2. 有些沒有Model層,直接給Presenter注入Retrofit Api(有些是注入一個管理類,如果項目小接口少,這樣還不錯,但是有沒有想過項目一大,接口一多里面就非常混亂),所有網(wǎng)絡(luò)請求邏輯在Presenter中,如果現(xiàn)在需求變了,需要加入緩存,就需要更改Presenter的邏輯,這樣就可能影響一些和這個功能無關(guān)的邏輯,如果有Model層,里面持有請求網(wǎng)絡(luò)和緩存的功能類,這樣Presenter就不需要管,數(shù)據(jù)是從網(wǎng)絡(luò)還是數(shù)據(jù)庫獲取的,Model層只用保證返回給Presenter的數(shù)據(jù)無誤,而Presenter只用專注于邏輯,這樣各自只用保證各自的職責(zé),屏蔽細(xì)節(jié),易擴(kuò)展,出錯也好定位

如何用?

在項目中用到最多的就是向Presenter提供ViewModel的同時,在向每一層提供所需要的單例類,并且使用Dagger不斷的重用PresenterModel,其實Dagger本來就抽象,說再多不如直接看代碼是怎么實現(xiàn)的,然后照著模版直接在自己項目中使用,本文的主題不就是在項目中怎么靈活使用Dagger嗎?那就直接在項目中找答案不是更快?

Launch?

公眾號

掃碼關(guān)注我的公眾號 JessYan,一起學(xué)習(xí)進(jìn)步皇拣,如果框架有更新硼瓣,我也會在公眾號上第一時間通知大家

公眾號

Hello 我叫 JessYan,如果您喜歡我的文章政鼠,可以在以下平臺關(guān)注我

-- The end

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末笔宿,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子隶垮,更是在濱河造成了極大的恐慌,老刑警劉巖秘噪,帶你破解...
    沈念sama閱讀 222,807評論 6 518
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件狸吞,死亡現(xiàn)場離奇詭異,居然都是意外死亡指煎,警方通過查閱死者的電腦和手機(jī)蹋偏,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,284評論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來至壤,“玉大人威始,你說我怎么就攤上這事∠窠郑” “怎么了黎棠?”我有些...
    開封第一講書人閱讀 169,589評論 0 363
  • 文/不壞的土叔 我叫張陵晋渺,是天一觀的道長。 經(jīng)常有香客問我脓斩,道長木西,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,188評論 1 300
  • 正文 為了忘掉前任随静,我火速辦了婚禮八千,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘燎猛。我一直安慰自己恋捆,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 69,185評論 6 398
  • 文/花漫 我一把揭開白布扛门。 她就那樣靜靜地躺著鸠信,像睡著了一般。 火紅的嫁衣襯著肌膚如雪论寨。 梳的紋絲不亂的頭發(fā)上星立,一...
    開封第一講書人閱讀 52,785評論 1 314
  • 那天,我揣著相機(jī)與錄音葬凳,去河邊找鬼绰垂。 笑死,一個胖子當(dāng)著我的面吹牛火焰,可吹牛的內(nèi)容都是我干的劲装。 我是一名探鬼主播,決...
    沈念sama閱讀 41,220評論 3 423
  • 文/蒼蘭香墨 我猛地睜開眼昌简,長吁一口氣:“原來是場噩夢啊……” “哼占业!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起纯赎,我...
    開封第一講書人閱讀 40,167評論 0 277
  • 序言:老撾萬榮一對情侶失蹤谦疾,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后犬金,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體念恍,經(jīng)...
    沈念sama閱讀 46,698評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,767評論 3 343
  • 正文 我和宋清朗相戀三年晚顷,在試婚紗的時候發(fā)現(xiàn)自己被綠了峰伙。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,912評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡该默,死狀恐怖瞳氓,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情栓袖,我是刑警寧澤顿膨,帶...
    沈念sama閱讀 36,572評論 5 351
  • 正文 年R本政府宣布锅锨,位于F島的核電站,受9級特大地震影響恋沃,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜必指,卻給世界環(huán)境...
    茶點故事閱讀 42,254評論 3 336
  • 文/蒙蒙 一囊咏、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧塔橡,春花似錦梅割、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,746評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至癞谒,卻和暖如春底燎,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背弹砚。 一陣腳步聲響...
    開封第一講書人閱讀 33,859評論 1 274
  • 我被黑心中介騙來泰國打工双仍, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人桌吃。 一個月前我還...
    沈念sama閱讀 49,359評論 3 379
  • 正文 我出身青樓朱沃,卻偏偏與公主長得像,于是被迫代替她去往敵國和親茅诱。 傳聞我的和親對象是個殘疾皇子逗物,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,922評論 2 361

推薦閱讀更多精彩內(nèi)容