欢迎来到天天文库
浏览记录
ID:58399345
大小:42.00 KB
页数:13页
时间:2020-05-08
《高内聚低耦合.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、高内聚低耦合1.什么是内聚?什么是耦合?内聚是从功能角度来度量模块内的联系,一个好的内聚模块应当恰好做一件事。它描述的是模块内的功能联系;耦合是软件结构中各模块之间相互连接的一种度量,耦合强弱取决于模块间接口的复杂程度、进入或访问一个模块的点以及通过接口的数据。耦合性也称块间联系。指软件系统结构中各模块间相互联系紧密程度的一种度量。模块之间联系越紧密,其耦合性就越强,模块的独立性则越差。模块间耦合高低取决于模块间接口的复杂性、调用的方式及传递的信息。2.内聚分为哪几类?耦合分为哪几类?内聚有如下的种类,它们之间的内聚度由弱到强排列如下:(1)偶然内聚。模块中的代码无法定义其不
2、同功能的调用。但它使该模块能执行不同的功能,这种模块称为巧合强度模块。(2)逻辑内聚。这种模块把几种相关的功能组合在一起,每次被调用时,由传送给模块参数来确定该模块应完成哪一种功能(3)时间内聚:把需要同时执行的动作组合在一起形成的模块为时间内聚模块。高内聚低耦合1.什么是内聚?什么是耦合?内聚是从功能角度来度量模块内的联系,一个好的内聚模块应当恰好做一件事。它描述的是模块内的功能联系;耦合是软件结构中各模块之间相互连接的一种度量,耦合强弱取决于模块间接口的复杂程度、进入或访问一个模块的点以及通过接口的数据。耦合性也称块间联系。指软件系统结构中各模块间相互联系紧密程度的一种度
3、量。模块之间联系越紧密,其耦合性就越强,模块的独立性则越差。模块间耦合高低取决于模块间接口的复杂性、调用的方式及传递的信息。2.内聚分为哪几类?耦合分为哪几类?内聚有如下的种类,它们之间的内聚度由弱到强排列如下:(1)偶然内聚。模块中的代码无法定义其不同功能的调用。但它使该模块能执行不同的功能,这种模块称为巧合强度模块。(2)逻辑内聚。这种模块把几种相关的功能组合在一起,每次被调用时,由传送给模块参数来确定该模块应完成哪一种功能(3)时间内聚:把需要同时执行的动作组合在一起形成的模块为时间内聚模块。(4)过程内聚:构件或者操作的组合方式是,允许在调用前面的构件或操作之后,马上
4、调用后面的构件或操作,即使两者之间没有数据进行传递。(5)通信内聚:指模块内所有处理元素都在同一个数据结构上操作(有时称之为信息内聚),或者指各处理使用相同的输入数据或者产生相同的输出数据。(6)顺序内聚:指一个模块中各个处理元素都密切相关于同一功能且必须顺序执行,前一功能元素输出就是下一功能元素的输入。(7)功能内聚:这是最强的内聚,指模块内所有元素共同完成一个功能,缺一不可。耦合可以分为以下几种,它们之间的耦合度由高到低排列如下:(1)内容耦合:如果发生下列情形,两个模块之间就发生了内容耦合·一个模块直接访问另一个模块的内部数据·一个模块不通过正常入口转到另一模块内部;·
5、两个模块有一部分程序代码重叠(只可能出现在汇编语言中);·一个模块有多个入口。(2)公共耦合:若一组模块都访问同一个公共数据环境,则它们之间的耦合就称为公共耦合。公共的数据环境可以是全局数据结构、共享的通信区、内存的公共覆盖区等。(3)外部耦合:一组模块都访问同一全局简单变量而不是同一全局数据结构,而且不是通过参数表传递该全局变量的信息,则称之为外部耦合。(4)控制耦合:如果一个模块通过传送开关、标志、名字等控制信息,明显地控制选择另一模块的功能,就是控制耦合(5)标记耦合:一组模块通过参数表传递记录信息,就是标记耦合。这个记录是某一数据结构的子结构,而不是简单变量。其实传递
6、的是这个数据结构的地址;也就是地址传递。 (6)数据耦合:指两个模块之间有调用关系,传递的是简单的数据值,一个模块访问另一个模块时,彼此之间是通过简单数据参数(不是控制参数、公共数据结构或外部变量)来交换输入、输出信息的,相当于高级语言的值传递。(7)非直接耦合:两个模块之间没有直接关系,它们之间的联系完全是通过主模块的控制和调用来实现的。耦合强度,依赖于以下几个因素:(1)一个模块对另一个模块的调用;(2)一个模块向另一个模块传递的数据量;(3)一个模块施加到另一个模块的控制的多少;(4)模块之间接口的复杂程度。1、耦合、内聚的评估标准是强度,耦合越弱越好,内聚越强越好;2
7、、所谓过度指的是由于错误理解导致的效果相反的设计;3、耦合指的模块之间的关系,最弱的耦合设计是通过一个主控模块来协调n个模块之间的运作。还是举一个我举过的例子:客户要求在界面上增加一个字段,你的项目要修改几个地方呢?如果你只要修改项目文档,那么你的开发构架就是最低强度的耦合,而这种设计成熟的开发团队都已经做到了,他们使用开发工具通过项目模型驱动数据库和各层次的代码,而不是直接修改那些代码;4、内聚指的是模块内部的功能,最强的内聚就是功能单一到不能拆分,也就是原子化,5、所以强内聚和弱耦合是相辅相成的,一
此文档下载收益归作者所有