欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

模塊化與組件化有什么區(qū)別-創(chuàng)新互聯(lián)

概念區(qū)別

創(chuàng)新互聯(lián)主要從事成都做網(wǎng)站、網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)德宏州,十年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專(zhuān)業(yè),歡迎來(lái)電咨詢建站服務(wù):18982081108

對(duì)比

模塊化與組件化有什么區(qū)別

說(shuō)明

組件:簡(jiǎn)而言之,組件就是對(duì)象。C++ Builder中叫組件,Delphi中叫部件,而在Visual BASIC中叫控件。組件是對(duì)數(shù)據(jù)和方法的簡(jiǎn)單封裝。C++ Builder中,一個(gè)組件就是一個(gè)從TComponent派生出來(lái)的特定對(duì)象。組件可以有自己的屬性和方法。屬性是組件數(shù)據(jù)的簡(jiǎn)單訪問(wèn)者。方法則是組件的一些簡(jiǎn)單而可見(jiàn)的功能。

模塊:模塊,又稱構(gòu)件,是能夠單獨(dú)命名并獨(dú)立地完成一定功能的程序語(yǔ)句的集合(即程序代碼和數(shù)據(jù)結(jié)構(gòu)的集合體)。它具有兩個(gè)基本的特征:外部特征和內(nèi)部特征。外部特征是指模塊跟外部環(huán)境聯(lián)系的接口(即其他模塊或程序調(diào)用該模塊的方式,包括有輸入輸出參數(shù)、引用的全局變量)和模塊的功能;內(nèi)部特征是指模塊的內(nèi)部環(huán)境具有的特點(diǎn)(即該模塊的局部數(shù)據(jù)和程序代碼)。

因?yàn)閺拇a組織層面上來(lái)區(qū)分,組件化開(kāi)發(fā)是縱向分層,模塊化開(kāi)發(fā)是橫向分塊,所以模塊化并沒(méi)有要求一定組件化。也就是說(shuō)你可以只做模塊化開(kāi)發(fā),而不做組件化開(kāi)發(fā)。那這樣的結(jié)果是什么樣的呢?就是說(shuō)你的代碼完全不考慮代碼重用,只是把相同業(yè)務(wù)的代碼做內(nèi)聚整合,不同模塊之間還是存在大量的重復(fù)代碼。這樣的成果也算是做到了模塊化,只不過(guò)我們一般不會(huì)這樣而已。

和組件模塊近似的一對(duì)概念是庫(kù)和框架。庫(kù)的概念偏近于代碼的堆集,是分層的概念,所以對(duì)應(yīng)組件化。框架是結(jié)構(gòu)化的代碼,所以應(yīng)用于模塊化。框架是骨,模塊化是肉。

舉例

下面我們舉例來(lái)說(shuō)明。

組件化就比如公共的alert框,最初在許多頁(yè)面都有使用,后面提取出一份相同的代碼,其實(shí)就是基于代碼復(fù)用的目的。

模塊化就比如一個(gè)資訊功能,它本身只在這一個(gè)地方使用,沒(méi)有復(fù)用的需求,但系統(tǒng)啟動(dòng)的時(shí)候要初始化它的數(shù)據(jù),首頁(yè)顯示的時(shí)候要展示它的數(shù)據(jù),顯示紅點(diǎn)的時(shí)候要拉取它的未讀數(shù)。這樣一來(lái)應(yīng)用中就有很多地方涉及到它的代碼。如果我們將它看做一個(gè)整體,那么資訊模塊和主應(yīng)用的耦合性就非常高了。所以我們也要把它封裝成模塊,把相關(guān)的代碼放到獨(dú)立的單元文件里,并提供公共方法,這就是高內(nèi)聚的要求。

漸進(jìn)式開(kāi)發(fā)過(guò)程

當(dāng)然這幾個(gè)概念在服務(wù)端開(kāi)發(fā)和客戶端開(kāi)發(fā)領(lǐng)域有些微差別,我下面的例子就從移動(dòng)端開(kāi)發(fā)的角度上進(jìn)行辨析。

首先我們定義一個(gè)虛擬的產(chǎn)品——一款知識(shí)類(lèi)應(yīng)用,包含咨詢、問(wèn)答、學(xué)院、直播等功能。

接下來(lái)我們逐步拆分這個(gè)產(chǎn)品。

如果開(kāi)發(fā)時(shí)沒(méi)有考慮任何組件化模塊化開(kāi)發(fā),那么此應(yīng)用的所有功能都是堆積在一起的,總結(jié)起來(lái)就是高耦合,低內(nèi)聚,無(wú)重用。

1.組件

那么代碼重構(gòu)的第一步是什么呢?

將重復(fù)的代碼合并成為一份,也就是重用。

我們來(lái)看組件化開(kāi)發(fā)的定義,它的著重點(diǎn)就是重用,那這一步最后的結(jié)果就是提煉出一個(gè)個(gè)組件給不同的功能使用。

這里我們可以看一下依賴關(guān)系,是具體功能依賴提煉出來(lái)的組件,組件本身之間可能也有依賴關(guān)系,但一般不多。所以我們總結(jié)組件化開(kāi)發(fā)的原則就是高重用,低依賴。當(dāng)然這只是相對(duì)而言。

基于這樣的認(rèn)識(shí),我們甚至于可以把資訊、問(wèn)答、學(xué)院、直播等功能封裝成組件,只不過(guò)這些組件比較大,依賴可能多些,不過(guò)本質(zhì)上沒(méi)有多少區(qū)別,而且實(shí)際上網(wǎng)上許多文章說(shuō)所的模塊化開(kāi)發(fā)其實(shí)就是這種組件化的“模塊”。

2.模塊

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

我們最開(kāi)始定義這個(gè)虛擬產(chǎn)品的時(shí)候說(shuō),它有三個(gè)特點(diǎn)——高耦合、低內(nèi)聚、無(wú)重用。而第一點(diǎn)組件化開(kāi)發(fā)主要是解決了重用問(wèn)題,提升了部分內(nèi)聚,而耦合問(wèn)題則沒(méi)有涉及。

所以說(shuō)我們上面可以將這個(gè)產(chǎn)品在邏輯上劃分為資訊、問(wèn)答、學(xué)院、直播四個(gè)模塊,但在代碼層面上它們卻不是四個(gè)模塊,因?yàn)樗鼈兊拇a都是混雜在一起的。比如產(chǎn)品首頁(yè),可能推薦了部分資訊、顯示了熱門(mén)問(wèn)答、推送了目前的直播,而這些功能的代碼則是寫(xiě)在一起的;再比如程序啟動(dòng)的時(shí)候,這四個(gè)模塊都需要初始化一些數(shù)據(jù),而初始化數(shù)據(jù)的代碼也是寫(xiě)在一起的;再比如程序需要顯示未讀消息數(shù),而這幾個(gè)模塊都有自己的未讀消息數(shù)邏輯。

如果未進(jìn)行模塊化開(kāi)發(fā)的拆分,那么很多時(shí)候不同模塊的同一類(lèi)的代碼都是直接寫(xiě)在一起的,比如系統(tǒng)啟動(dòng)的時(shí)候,我們會(huì)在啟動(dòng)方法里直接寫(xiě)多個(gè)模塊的初始化代碼。

而模塊化開(kāi)發(fā)就是為了解決這一問(wèn)題,即提高內(nèi)聚,將分屬同一模塊代碼放到一起;降低耦合,將不同模塊間的耦合程度弱化。

高內(nèi)聚是目標(biāo),但是現(xiàn)狀是有許多地方會(huì)用到多個(gè)模塊,比如啟動(dòng)的時(shí)候會(huì)調(diào)用四個(gè)模塊,首頁(yè)會(huì)展示三個(gè)模塊的界面。如果要高內(nèi)聚,那么必然需要這些模塊為不同的場(chǎng)景提供相同的方法,這就是說(shuō)所有模塊要實(shí)現(xiàn)同一套多個(gè)接口。這樣主應(yīng)用和模塊之間的重耦合就變成了主應(yīng)用和接口耦合,接口和模塊耦合這樣的松耦合。

但這樣的簡(jiǎn)單模塊只是輕模塊,統(tǒng)一接口較少。而統(tǒng)一定義的接口越多,模塊和統(tǒng)一接口的耦合就越高,也便是重模塊。

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

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專(zhuān)為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。

當(dāng)前文章:模塊化與組件化有什么區(qū)別-創(chuàng)新互聯(lián)
標(biāo)題來(lái)源:http://www.chinadenli.net/article18/pdhdp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站建設(shè)全網(wǎng)營(yíng)銷(xiāo)推廣網(wǎng)站維護(hù)做網(wǎng)站服務(wù)器托管App設(shè)計(jì)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

小程序開(kāi)發(fā)