白茶清欢无别事,温柔只给陈立农。
耦合性什么意思
耦合性也叫耦合度是对模块间关联程度的度量耦合的强弱取决于模块间接口的复杂性调用模块的方式以及通过界面传送数据的多少
模块间的耦合度是指模块之间的依赖关系包括控制关系调用关系数据传递关系模块间联系越多其耦合性越强同时表明其独立性越差(降低耦合性可以提高其独立性)软件设计中通常用耦合度和内聚度作为衡量模块独立程度的标准划分模块的一个准则就是高内聚低耦合
形象的说就是要将代码写的和主机的排线一样低耦合的模块好像你看你主机排线中的随便一条就知道这条线是干啥一样拔掉会不会影响其他排线的功能一样低耦合的模块就好比鼠标线一样拔掉它只影响它自身的鼠标功能高耦合的模块就好比主机电源线一拔掉不只影响它自身的功能其他功能也被影响了
耦合性和内聚性是什么意思
1耦合性(块间联系)
指软件系统结构中各模块间相互联系紧密程度的一种度量模块之间联系越紧密其耦合性就越强模块的独立性则越差模块间耦合高低取决于模块间接口的复杂性调用的方式及传递的信息
2内聚性(块内联系)
指模块的功能强度的度量即一个模块内部各个元素彼此结合的紧密程度的度量若一个模块内各元素(语名之间程序段之间)联系的越紧密则它的内聚性就越高
因此现代程序讲究高内聚低耦合即将功能内聚在同一模块模块与模块间尽可能独立互相依赖低没有绝对没有耦合的模块组只有尽量降低互相之间的影响使模块越独立越好
耦合性的七种类型
1非直接耦合
如果两个模块之间没有直接关系它们之间的联系完全是通过主模块的控制和调用来实现的这就是非直接耦合这种耦合的模块独立性最强
2数据耦合
如果一个模块访问另一个模块时彼此之间是通过数据参数(不是控制参数公共数据结构或外部变量)来交换输入输出信息的则称这种耦合为数据耦合由于限制了只通过参数表传递数据按数据耦合开发的程序界面简单安全可靠因此数据耦合是松散的耦合模块之间的独立性比较强在软件程序结构中至少必须有这类耦合
3标记耦合
如果一组模块通过参数表传递记录信息就是标记耦合事实上这组模块共享了这个记录它是某一数据结构的子结构而不是简单变量这要求这些模块都必须清楚该记录的结构并按结构要求对此记录进行操作在设计中应尽量避免这种耦合它使在数据结构上的操作复杂化了如果采取信息隐蔽的方法把在数据结构上的操作全部集中在一个模块中就可以消除这种耦合
4控制耦合
如果一个模块通过传送开关标志名字等控制信息明显地控制选择另一模块的功能就是控制耦合这种耦合的实质是在单一接口上选择多功能模块中的某项功能因此对所控制模块的任何修改都会影响控制模块另外控制耦合也意味着控制模块必须知道所控制模块内部的一些逻辑关系这些都会降低模块的独立性
5外部耦合
一组模块都访问同一全局简单变量而不是同一全局数据结构而且不是通过参数表传递该全局变量的信息则称之为外部耦合
6公共耦合
若一组模块都访问同一个公共数据环境则它们之间的耦合就称为公共耦合公共的互联网数据环境可以是全局数据结构共享的通信区内存的公共覆盖区等
7内容耦合
如果发生下列情形两个模块之间就发生了内容耦合
(1)一个模块直接访问另一个模块的内部数据
(2)一个模块不通过正常入口转到另一模块内部
(3)两个模块有一部分程序代码重叠(只可能出现在汇编语言中)
(4)一个模块有多个入口