javascript模塊化是什么及其優(yōu)缺點(diǎn)介紹
更新時(shí)間:2013年09月02日 17:43:41 作者:
模塊化是一種將系統(tǒng)分離成獨(dú)立功能部分的方法,可將系統(tǒng)分割成獨(dú)立的功能部分,嚴(yán)格定義模塊接口、模塊間具有透明性
如今backbone、emberjs、spinejs、batmanjs 等MVC框架侵襲而來(lái)。CommonJS、AMD、NodeJS、RequireJS、SeaJS、curljs等模塊化的JavaScript撲面而來(lái)。web前端已經(jīng)演變成大前端,web前端的發(fā)展速度之快。
1)我們來(lái)看看什么是模塊化?
模塊化是一種將系統(tǒng)分離成獨(dú)立功能部分的方法,可將系統(tǒng)分割成獨(dú)立的功能部分,嚴(yán)格定義模塊接口、模塊間具有透明性。javascript中的模塊在一些C、PHP、java中比較常見(jiàn):
c中使用include 包含.h文件;php中使用require_once包含.php文件
java使用import導(dǎo)入包
此中都有模塊化的思想。
2)模塊化的優(yōu)缺點(diǎn):
a>優(yōu)點(diǎn):
可維護(hù)性
1.靈活架構(gòu),焦點(diǎn)分離
2.方便模塊間組合、分解
3.方便單個(gè)模塊功能調(diào)試、升級(jí)
4.多人協(xié)作互不干擾
可測(cè)試性
1.可分單元測(cè)試
b>缺點(diǎn):
性能損耗
1.系統(tǒng)分層,調(diào)用鏈會(huì)很長(zhǎng)
2.模塊間通信,模塊間發(fā)送消息會(huì)很耗性能
3)最近的項(xiàng)目中也有用到模塊化,使用的是seajs,但是當(dāng)引用到j(luò)query,jquery easyui/或者jquery UI組件時(shí),有可能會(huì)用到很多jquery插件,那這樣要是實(shí)現(xiàn)一個(gè)很復(fù)雜的交互時(shí),模塊間的依賴會(huì)很多,使用define()方法引入模塊會(huì)很多,不知有么有什么好的方法?
4)附:
內(nèi)聚度
內(nèi)聚度指模塊內(nèi)部實(shí)現(xiàn),它是信息隱藏和局部化概念的自然擴(kuò)展,它標(biāo)志著一個(gè)模塊內(nèi)部各成分彼此結(jié)合的緊密程度。好處也很明顯,當(dāng)把相關(guān)的任務(wù)分組后去閱讀就容易多了。 設(shè)計(jì)時(shí)應(yīng)該盡可能的提高模塊內(nèi)聚度,從而獲得較高的模塊獨(dú)立性。
耦合度
耦合度則是指模塊之間的關(guān)聯(lián)程度的度量。耦合度取決于模塊之間接口的復(fù)雜性,進(jìn)入或調(diào)用模塊的位置等。與內(nèi)聚度相反,在設(shè)計(jì)時(shí)應(yīng)盡量追求松散耦合的系統(tǒng)。
1)我們來(lái)看看什么是模塊化?
模塊化是一種將系統(tǒng)分離成獨(dú)立功能部分的方法,可將系統(tǒng)分割成獨(dú)立的功能部分,嚴(yán)格定義模塊接口、模塊間具有透明性。javascript中的模塊在一些C、PHP、java中比較常見(jiàn):
c中使用include 包含.h文件;php中使用require_once包含.php文件
java使用import導(dǎo)入包
此中都有模塊化的思想。
2)模塊化的優(yōu)缺點(diǎn):
a>優(yōu)點(diǎn):
可維護(hù)性
1.靈活架構(gòu),焦點(diǎn)分離
2.方便模塊間組合、分解
3.方便單個(gè)模塊功能調(diào)試、升級(jí)
4.多人協(xié)作互不干擾
可測(cè)試性
1.可分單元測(cè)試
b>缺點(diǎn):
性能損耗
1.系統(tǒng)分層,調(diào)用鏈會(huì)很長(zhǎng)
2.模塊間通信,模塊間發(fā)送消息會(huì)很耗性能
3)最近的項(xiàng)目中也有用到模塊化,使用的是seajs,但是當(dāng)引用到j(luò)query,jquery easyui/或者jquery UI組件時(shí),有可能會(huì)用到很多jquery插件,那這樣要是實(shí)現(xiàn)一個(gè)很復(fù)雜的交互時(shí),模塊間的依賴會(huì)很多,使用define()方法引入模塊會(huì)很多,不知有么有什么好的方法?
4)附:
內(nèi)聚度
內(nèi)聚度指模塊內(nèi)部實(shí)現(xiàn),它是信息隱藏和局部化概念的自然擴(kuò)展,它標(biāo)志著一個(gè)模塊內(nèi)部各成分彼此結(jié)合的緊密程度。好處也很明顯,當(dāng)把相關(guān)的任務(wù)分組后去閱讀就容易多了。 設(shè)計(jì)時(shí)應(yīng)該盡可能的提高模塊內(nèi)聚度,從而獲得較高的模塊獨(dú)立性。
耦合度
耦合度則是指模塊之間的關(guān)聯(lián)程度的度量。耦合度取決于模塊之間接口的復(fù)雜性,進(jìn)入或調(diào)用模塊的位置等。與內(nèi)聚度相反,在設(shè)計(jì)時(shí)應(yīng)盡量追求松散耦合的系統(tǒng)。
相關(guān)文章
JavaScript中字符串與數(shù)組的includes()用法
這篇文章主要介紹了JavaScript中字符串與數(shù)組的includes()用法,需要的朋友可以參考下2023-06-06
JavaScript學(xué)習(xí)筆記整理_setTimeout的應(yīng)用
下面小編就為大家?guī)?lái)一篇JavaScript學(xué)習(xí)筆記整理_setTimeout的應(yīng)用。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-09-09
JS實(shí)現(xiàn)的生成隨機(jī)數(shù)的4個(gè)函數(shù)分享
這篇文章主要介紹了JS實(shí)現(xiàn)的生成隨機(jī)數(shù)的4個(gè)函數(shù)分享,本文直接給出實(shí)現(xiàn)代碼,需要的朋友可以參考下2015-02-02
uniapp父子組件傳值3種方法(props、slot和ref)
這篇文章主要給大家介紹了關(guān)于uniapp父子組件傳值的3種方法,方法包括props、slot和ref,最近看到uniapp組件傳值的方法,這里記錄一下,需要的朋友可以參考下2023-07-07
JS獲取一個(gè)字符串中指定字符串第n次出現(xiàn)的位置
這篇文章主要介紹了JS獲取一個(gè)字符串中指定字符串第n次出現(xiàn)的位置,文章內(nèi)容實(shí)例講解的很清晰,有需要的同學(xué)可以研究下2021-02-02
設(shè)計(jì)模式中的組合模式在JavaScript程序構(gòu)建中的使用
組合模式一般是將一系列類似的小對(duì)象組合成大的對(duì)象,由這個(gè)大對(duì)象提供接口來(lái)對(duì)里面的小對(duì)象進(jìn)行操作,下買呢我們來(lái)詳細(xì)看一下設(shè)計(jì)模式中的組合模式在JavaScript程序構(gòu)建中的使用2016-05-05
JavaScript預(yù)解析之變量預(yù)解析和函數(shù)預(yù)解析
這篇文章主要介紹了JavaScript預(yù)解析之變量預(yù)解析和函數(shù)預(yù)解析的相關(guān)資料,需要的朋友可以參考下2022-07-07
Javascript技術(shù)棧中的四種依賴注入小結(jié)
本文總結(jié)了Javascript中常見(jiàn)的依賴注入方式,并以inversify.js為例,介紹了方言社區(qū)對(duì)于Javascript中DI框架的嘗試和初步成果2016-02-02

