組件化開發(fā)與模塊化開發(fā)

概念區(qū)別

對比

類別 目的 特點 接口 成果 架構(gòu)定位
組件 重用、解耦 高重用、松耦合 無統(tǒng)一接口 基礎(chǔ)庫、基礎(chǔ)組件 縱向分層
模塊 隔離、封裝 高內(nèi)聚、松耦合 統(tǒng)一接口 業(yè)務(wù)框架、業(yè)務(wù)模塊 橫向分塊

說明

- 組件:最初的目的是代碼重用,功能相對單一或者獨立。在整個系統(tǒng)的代碼層次上位于最底層,被其他代碼所依賴,所以說組件化是縱向分層
- 模塊:最初的目的是將同一類型的代碼整合在一起,所以模塊的功能相對復雜,但都同屬于一個業(yè)務(wù)。不同模塊之間也會存在依賴關(guān)系,但大部分都是業(yè)務(wù)性的互相跳轉(zhuǎn),從地位上來說它們都是平級的。

1.組件

那么代碼重構(gòu)的第一步是什么呢? 
將重復的代碼合并成為一份,也就是重用。 
我們來看組件化開發(fā)的定義,它的著重點就是重用,那這一步最后的結(jié)果就是提煉出一個個組件給不同的功能使用。
這里我們可以看一下依賴關(guān)系,是具體功能依賴提煉出來的組件,組件本身之間可能也有依賴關(guān)系,但一般不多。所以我們總結(jié)組件化開發(fā)的原則就是高重用,低依賴。當然這只是相對而言。 
基于這樣的認識,我們甚至于可以把資訊、問答、學院、直播等功能封裝成組件,只不過這些組件比較大,依賴可能多些,不過本質(zhì)上沒有多少區(qū)別,而且實際上網(wǎng)上許多文章說所的模塊化開發(fā)其實就是這種組件化的“模塊”。

2.模塊

下面再說模塊,按照模塊的定義,它是以關(guān)注點進行劃分的,關(guān)注點說到底就是功能,也就是說根據(jù)我們上面的例子,資訊、問答、學院、直播可以分成不同的模塊。

我們最開始定義這個虛擬產(chǎn)品的時候說,它有三個特點——高耦合、低內(nèi)聚、無重用。而第一點組件化開發(fā)主要是解決了重用問題,提升了部分內(nèi)聚,而耦合問題則沒有涉及。 
所以說我們上面可以將這個產(chǎn)品在邏輯上劃分為資訊、問答、學院、直播四個模塊,但在代碼層面上它們卻不是四個模塊,因為它們的代碼都是混雜在一起的。比如產(chǎn)品首頁,可能推薦了部分資訊、顯示了熱門問答、推送了目前的直播,而這些功能的代碼則是寫在一起的;再比如程序啟動的時候,這四個模塊都需要初始化一些數(shù)據(jù),而初始化數(shù)據(jù)的代碼也是寫在一起的;再比如程序需要顯示未讀消息數(shù),而這幾個模塊都有自己的未讀消息數(shù)邏輯。 
如果未進行模塊化開發(fā)的拆分,那么很多時候不同模塊的同一類的代碼都是直接寫在一起的,比如系統(tǒng)啟動的時候,我們會在啟動方法里直接寫多個模塊的初始化代碼。
而模塊化開發(fā)就是為了解決這一問題,即提高內(nèi)聚,將分屬同一模塊代碼放到一起;降低耦合,將不同模塊間的耦合程度弱化。
高內(nèi)聚是目標,但是現(xiàn)狀是有許多地方會用到多個模塊,比如啟動的時候會調(diào)用四個模塊,首頁會展示三個模塊的界面。如果要高內(nèi)聚,那么必然需要這些模塊為不同的場景提供相同的方法,這就是說所有模塊要實現(xiàn)同一套多個接口。這樣主應(yīng)用和模塊之間的重耦合就變成了主應(yīng)用和接口耦合,接口和模塊耦合這樣的松耦合。 
但這樣的簡單模塊只是輕模塊,統(tǒng)一接口較少。而統(tǒng)一定義的接口越多,模塊和統(tǒng)一接口的耦合就越高,也便是重模塊。

而我們一般講的路由問題其實只是解決模塊間耦合的問題,并不是模塊化開發(fā)的必然需求,更多時候是基于產(chǎn)品上的動態(tài)化要求,只不過我們一般都會在這個時間考慮這一事情而已,就像我們不會只做模塊化開發(fā)同時不做組件化開發(fā)一樣。

原文出處: https://blog.csdn.net/blog_jihq/article/details/79191008

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

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

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,058評論 25 709
  • 用兩張圖告訴你,為什么你的 App 會卡頓? - Android - 掘金 Cover 有什么料? 從這篇文章中你...
    hw1212閱讀 14,003評論 2 59
  • (轉(zhuǎn))原文鏈接:https://blog.csdn.net/huangqili1314/article/detai...
    谷哥得小弟閱讀 3,949評論 0 66
  • 穿越遠古的一份堅守 搖落無數(shù)星辰的眼眸。 褪盡云裳霞衣的歲月 也不能使你垂首動容。 未曾跨出一步, 滄海桑田在你腳...
    林嘉梓閱讀 444評論 8 45
  • 團隊的力量真強大,一個人有時候很容易懈怠,或者沮喪,或者孤單,但在團隊里有小伙伴互相幫助,鼓勵,監(jiān)督,工作效率提高...
    雪如FineYoga閱讀 670評論 0 2

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