前言
組件化與模塊化已經(jīng)深入體現(xiàn)到軟件開發(fā)當(dāng)中,也是為了讓開發(fā)者更好的去解決軟件上的高耦合、低內(nèi)聚、無(wú)重用的3大代碼問(wèn)題。在寫這篇文章之前,我也百度過(guò)很多相關(guān)介紹文章,各個(gè)作者都有自己的一些想法或者總結(jié),所以當(dāng)時(shí)看得比較亂,在實(shí)踐過(guò)程中也存在不少疑惑(很多時(shí)候不知道選擇用組件還是模塊,或者有時(shí)候根本分不清自己這得是組件還是模塊。云里霧里~~)。因此為了解決這些疑惑幫自己統(tǒng)一了組件化與模塊化的使用方式與概念、定位
組件化?
就是"基礎(chǔ)庫(kù)"或者“基礎(chǔ)組件",意思是把代碼重復(fù)的部分提煉出一個(gè)個(gè)組件供給功能使用。
? ? ? ? 使用:Dialog,各種自定義的UI控件、像在common,until,cocopods(公有,私有),SDK等。
? ? ? ? 目的:復(fù)用,解耦。
? ? ? ? 依賴:組件之間低依賴,比較獨(dú)立。
? ? ? ? 架構(gòu)定位:縱向分層(位于架構(gòu)底層,被其他層所依賴)。
?模塊化?
????????就是"業(yè)務(wù)框架"或者“業(yè)務(wù)模塊",也可以理解為“框架”,意思是把功能進(jìn)行劃分,將同一類型的代碼整合在一起,所以 ? ? ? ? ? 模塊的功能相對(duì)復(fù)雜,但都同屬于一個(gè)業(yè)務(wù)。
? ? ? ? 使用:按照項(xiàng)目功能需求劃分成不同類型的業(yè)務(wù)框架(例如:注冊(cè)、登錄、外賣、直播.....)
? ? ? ? 目的:隔離/封裝 (高內(nèi)聚)。
? ? ? ? 依賴:模塊之間有依賴的關(guān)系,可通過(guò)路由器進(jìn)行模塊之間的耦合問(wèn)題。
? ? ? ? 架構(gòu)定位:橫向分塊(位于架構(gòu)業(yè)務(wù)框架層)。
總結(jié)
????其實(shí)組件相當(dāng)于庫(kù),把一些能在項(xiàng)目里或者不同類型項(xiàng)目中可復(fù)用的代碼進(jìn)行工具性的封裝。
????而模塊相應(yīng)于業(yè)務(wù)邏輯模塊,把同一類型項(xiàng)目里的功能邏輯進(jìn)行進(jìn)行需求性的封裝。