ARouter Module模塊化框架

利用ARouter實(shí)現(xiàn)的模塊化框架,可以單獨(dú)編譯運(yùn)行某個(gè)module,通過開關(guān)修改依賴關(guān)系。

模塊化最基本的特性就是獨(dú)立,降低耦合性。模塊之間聯(lián)系越緊密,其耦合性就越強(qiáng),模塊的獨(dú)立性則越差。模塊間耦合高低取決于模塊間接口的復(fù)雜性、調(diào)用的方式及傳遞的信息。

在app開發(fā)過程中,最好的設(shè)計(jì)方式,就是當(dāng)依賴解除后,app依舊能正常運(yùn)行(在編譯階段),代碼是可以build的,不會(huì)出錯(cuò),只不過對(duì)應(yīng)的代碼沒有實(shí)現(xiàn)而已。

這個(gè)框架的設(shè)計(jì),一個(gè)是利用ARouter解決了項(xiàng)目間的耦合問題,第二個(gè)是提供了模塊移除依賴后,可以獨(dú)立運(yùn)行的配置。

整個(gè)項(xiàng)目的框架如下圖:


main.png

這里我將模塊分為三層:

最上層是app層,承接所有的業(yè)務(wù)。依賴每個(gè)業(yè)務(wù)module和接口lib_base。

第二層是業(yè)務(wù)層,根據(jù)不同的需求和業(yè)務(wù),剝離出各個(gè)module。只依賴lib_base,并且實(shí)現(xiàn)接口。

第三層是base層,放置各個(gè)業(yè)務(wù)暴露出來的接口,或者一些非?;A(chǔ)的公共類、庫(kù)等。

三層邏輯中,抽離的是業(yè)務(wù)層代碼,base層不作操作。所有的依賴控制,都在項(xiàng)目的gradle.properties文件中,用isModule的值控制。

gradle.properties.png

同時(shí)在app層做好分離的build.gradle配置

app.png

在業(yè)務(wù)層module中的build.gradle配置

module1.png
module2.png

這里對(duì)模塊做了一點(diǎn)小的操作,可以使模塊在library和application之間切換。在實(shí)際項(xiàng)目中,也可以為每個(gè)module添加獨(dú)有的變量開關(guān),在開發(fā)自己模塊的時(shí)候,只需先單獨(dú)module運(yùn)行,測(cè)試完畢后再接入app,最后進(jìn)行調(diào)試。避免了整個(gè)工程運(yùn)行的耗時(shí),往往工程越大,項(xiàng)目跑一次的時(shí)間也就越久,從而節(jié)省時(shí)間,加快效率。

附上github地址:https://github.com/javalue/Arouter-Module

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容