摘要:最近在看設(shè)計(jì)模式和開發(fā)實(shí)踐里面說到設(shè)計(jì)模式的主題總是把不變的事物和變化的事物分離開這就涉及到了解耦耦合是一個(gè)很寬泛的概念在此只為記錄在中出現(xiàn)的各種類型的耦合數(shù)據(jù)耦合一個(gè)模塊訪問另一個(gè)模塊時(shí)彼此之間是通過簡單的數(shù)據(jù)參數(shù)不是控制參數(shù)公共數(shù)據(jù)結(jié)構(gòu)
最近在看JavaScript設(shè)計(jì)模式和開發(fā)實(shí)踐,里面說到"設(shè)計(jì)模式的主題總是把不變的事物和變化的事物分離開",這就涉及到了解耦.耦合是一個(gè)很寬泛的概念,在此只為記錄在js中出現(xiàn)的各種類型的耦合.
數(shù)據(jù)耦合:一個(gè)模塊訪問另一個(gè)模塊時(shí),彼此之間是通過簡單的數(shù)據(jù)參數(shù)(不是控制參數(shù)/公共數(shù)據(jù)結(jié)構(gòu)/外部變量)來交換輸入輸出信息的.網(wǎng)上搜到的解釋,不是很懂!
function create(id) { var box = document.createElement("div"); box.setAttribute("id", id); return box; } function append(id) { var box = create(id); document.body.appendChild(box); }
此處的耦合是因?yàn)閍ppend函數(shù)訪問了create函數(shù).
解決方案:
create函數(shù)不變, function append(obj) { document.body.appendChild(obj); } var box = create(id); append(box);
控制耦合:如果一個(gè)模塊通過傳送開關(guān)/標(biāo)志/名字等控制信息,明顯地控制選擇另一模塊的功能,就是控制耦合.網(wǎng)上搜到的解釋,不是很懂!
var y = 1; function a(x) { if (x) { y = 1; } else { y = 0; } } function b() { if (y == 1) { console.log("y is 1"); } else { console.log("y is 0"); } }
解決方案:
1.將被調(diào)用模塊內(nèi)的判定上移到調(diào)用模塊中進(jìn)行
干掉var y = 1;和函數(shù)b function a(x) { if (x) { console.log("y is 1"); } else { console.log("y is 0"); } }
2.被調(diào)用模塊分解成若干單一功能的模塊
內(nèi)容耦合:當(dāng)一個(gè)模塊直接修改或者操作另一個(gè)模塊的數(shù)據(jù),或者直接轉(zhuǎn)入另一個(gè)模塊時(shí),就發(fā)生了內(nèi)容耦合.此時(shí),被修改的模塊完全依賴于修改它的模塊.額額額,下面的例子和數(shù)據(jù)耦合的例子有啥不同???
function a() { return "kk"; } function b() { alert(a()); } b();
解決方案:
a函數(shù)不變 function b(p1) { alert(p1); } b(a());
還有 標(biāo)記耦合 非直接耦合 外部耦合 公共耦合,這些都沒有在網(wǎng)上找到合適的js的例子,希望大家補(bǔ)充!
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/81832.html
摘要:模塊內(nèi)聚和耦合的基礎(chǔ)知識(shí)是軟件評(píng)測(cè)師考試的重要考點(diǎn),經(jīng)常出現(xiàn)在上午場的客觀選擇題當(dāng)中。外部耦合模塊間通過軟件之外的環(huán)境聯(lián)結(jié)如將模塊耦合到特定的設(shè)備格式通信協(xié)議上時(shí)稱為外部耦合。這種模塊之間的耦合稱之為內(nèi)容耦合。 模塊內(nèi)聚和耦合的基礎(chǔ)知識(shí)是軟件評(píng)測(cè)師考試的重要考點(diǎn),經(jīng)常出現(xiàn)在上午場的客觀選擇題當(dāng)中。模塊獨(dú)立是指模塊只完成系統(tǒng)...
摘要:解釋模塊耦合性的含義,對(duì)不同的耦合舉例說明耦合性,也叫耦合度,是對(duì)模塊間關(guān)聯(lián)程度的度量。模塊間的耦合度是指模塊之間的依賴關(guān)系,包括控制關(guān)系調(diào)用關(guān)系數(shù)據(jù)傳遞關(guān)系。軟件設(shè)計(jì)中通常用耦合度和內(nèi)聚度作為衡量模塊獨(dú)立程度的標(biāo)準(zhǔn)。 ...
摘要:由于第四章太稀松平常了于是就直接跳到第五章了這里我就草草的說一下第四章的幾個(gè)點(diǎn)吧在嚴(yán)格模式的應(yīng)用下不推薦將用在全局作用域中相等推薦盡量使用和守則如果是在沒有別的方法來完成當(dāng)前任務(wù)這時(shí)可以使用原始包裝類型不推薦創(chuàng)建類型時(shí)用等創(chuàng)建類型從這一章節(jié) 由于第四章太稀松平常了, 于是就直接跳到第五章了.這里我就草草的說一下第四章的幾個(gè)點(diǎn)吧 在嚴(yán)格模式的應(yīng)用下 不推薦將use strict;用在全...
摘要:二樂高式松耦合架構(gòu)落地快速實(shí)現(xiàn)需求與需求實(shí)現(xiàn)越來越慢的矛盾如何解決最終白山的產(chǎn)品架構(gòu)聚焦在解耦上,方便平臺(tái)快速迭代,減少系統(tǒng)間依賴程度,打通無關(guān)聯(lián)項(xiàng)目,為運(yùn)營互動(dòng)提供高效支持,確保服務(wù)質(zhì)量。 作者:王康 白山聯(lián)合創(chuàng)始人兼產(chǎn)品副總裁。 王康先生主要負(fù)責(zé)產(chǎn)品的完善與升級(jí)、產(chǎn)品開發(fā)流程把控及進(jìn)度協(xié)調(diào)、產(chǎn)品設(shè)計(jì)改進(jìn)及定期優(yōu)化、產(chǎn)品全生命周期管理等工作。他帶領(lǐng)團(tuán)隊(duì)實(shí)現(xiàn)白山首款產(chǎn)品CDN-X的多項(xiàng)...
摘要:二樂高式松耦合架構(gòu)落地快速實(shí)現(xiàn)需求與需求實(shí)現(xiàn)越來越慢的矛盾如何解決最終白山的產(chǎn)品架構(gòu)聚焦在解耦上,方便平臺(tái)快速迭代,減少系統(tǒng)間依賴程度,打通無關(guān)聯(lián)項(xiàng)目,為運(yùn)營互動(dòng)提供高效支持,確保服務(wù)質(zhì)量。 作者:王康 白山聯(lián)合創(chuàng)始人兼產(chǎn)品副總裁。 王康先生主要負(fù)責(zé)產(chǎn)品的完善與升級(jí)、產(chǎn)品開發(fā)流程把控及進(jìn)度協(xié)調(diào)、產(chǎn)品設(shè)計(jì)改進(jìn)及定期優(yōu)化、產(chǎn)品全生命周期管理等工作。他帶領(lǐng)團(tuán)隊(duì)實(shí)現(xiàn)白山首款產(chǎn)品CDN-X的多項(xiàng)...
閱讀 3647·2023-04-26 02:32
閱讀 3947·2021-11-23 10:05
閱讀 2305·2021-10-08 10:04
閱讀 2731·2021-09-22 16:06
閱讀 3626·2021-09-22 15:27
閱讀 777·2019-08-30 15:54
閱讀 1728·2019-08-30 13:50
閱讀 2713·2019-08-29 13:56