理解耦合

Posted Mzs-Qsy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了理解耦合相关的知识,希望对你有一定的参考价值。

1.词义


1.1、你首先得知道,在中文里,【耦合】的原本含意。

耦合的耦,在中国古代是指 两人并肩而耕,就是两个人在一起合作使用农具耕地,这是上古农耕时代对农业生产的写实描述,是中古时代以前古中国的田园生活,(中国上古、中古)农具“耒”(犁的前身)是需要两个人一起进行合作,进行联合操作的。

【耦,是中国古代生活史、经济史、农业农耕史、农业工具发展史在中国文字上的真实反映。】

所以,耦合,从古代农业领域借用到其他领域,在物理学上指两个或两个以上的体系或两种运动形式之间通过各种相互作用而彼此影响,甚至联合起来的现象;

耦 同“偶”,通“偶”。

然后,在学术上被借用到很多领域,其实就是用以描述 偶数【 2 】以上 多体系的相互作用/彼此影响/互相联合之现象。

1.2、英文单词coupling,用夫妻/两个/一对儿/连接、联接/成双成对/,等等来描述学术上的耦合/耦合性,大致上也能描述,“耦合”现象的中文表述和外文表述其实是大差不差的,但我总觉得欧洲人在词汇拓展上有点贫瘠,有点蛋疼。

最后,我为什么觉得 英文 使用 有 “夫妻”、“两人”、“一对”、“连接”、“几个”、“几名”等含义之“couple”原型单词 所衍生的 英文单词 "coupling" ,描述 耦合/耦合性 有点蛋疼,有点贫瘠呢?
回答:因为 在学术上,耦合 在一起的两个体系(模块、系统)或者几个体系(模块、系统),其实 并不一定就是 “一对”、“成双成对”的关系,也并不一定是类似“夫妻”或“情侣”的关系。
中国古代两个人配对在一起联合操作农具“耒”的, 耦 ,有可能是夫妻,有可能是父子,有可能是母子,也可能是兄弟,也可能是 妯娌、姐妹,甚至可能是十户连坐的同村邻居、隔壁邻居、乡里乡亲。
在盛行使用奴隶生产的上古,甚至可能是完全没有血缘没有亲缘关系的奴隶、奴婢。
所以,真要说哪个更贴切,我个人觉得“耦合”一词更贴切现代学术各个学科所描述的 各种 耦合 现象——当然,前提是你得对中国古代农业农耕历史、古代农具发展历史、中国古代文化基本有所了解,否则你无法很好理解这个词汇用来描述各种耦合现象的精妙贴切之处。

2.计算机科学

2.1内聚性

内聚性Cohesion)也称为内聚力,是一软件度量,是指机能相关的程序组合成一模块的程度[1],或是各机能凝聚的状态或程度[2]。是结构化分析的重要概念之一。量测内聚性的方式很多,有些方法是由分析源代码,得到非量化的结果,有些方法则是检查源代码的文本特征,以得到内聚性的量化分数。内聚性是属于顺序式的量测量,一般会以“高内聚性”或“低内聚性”来表示。一般会希望程序的模块有高内聚性,因为高内聚性一般和许多理想的软件特性有关,包括鲁棒性可靠度可复用性及易懂性(understandability)等特性,而低内聚性一般也代表不易维护、不易测试、不易复用以及难以理解。

2.2耦合性

耦合性是一个和内聚性相对的概念。一般而言高内聚性代表低耦合性,反之亦然。内聚性是由赖瑞·康斯坦丁所提出,是以实务上可减少维护及修改的“好”软件的特性为基础[3]

2.3开发

在现代 UI 开发中,我们已经发现相比于把代码库分离成三个大的层次并将其相互交织起来,把它们划分为松散耦合的组件再将其组合起来更合理一些。在一个组件里,其模板、逻辑和样式是内部耦合的,并且把他们搭配在一起实际上使得组件更加内聚且更可维护。

2.4耦合的问题

4.紧密耦合的系统在开发阶段有以下的缺点:

  1. 一个模块的修改会产生涟漪效应,其他模块也需随之修改。

  2. 由于模块之间的相依性,模块的组合会需要更多的精力及时间。

  3. 由于一个模块有许多的相依模块,模块的可复用性低。

2.5理解耦合

高内聚,一个函数尽量只做一件事。低耦合,就是两个模块之间的依赖程度低。
函数要专注,模块要独立。

引用--维基百科
引用--知乎

以上是关于理解耦合的主要内容,如果未能解决你的问题,请参考以下文章

金蝶handler中 collection 代码片段理解

第七周收获

调用模板化成员函数:帮助我理解另一个 *** 帖子中的代码片段

如何理解这段代码片段中的两对括号?

高内聚,低耦合

精心收集的 48 个 JavaScript 代码片段,仅需 30 秒就可理解