-
什么是高内聚低耦合
2020-11-10 07:51:23其中内聚是从功能角度来度量模块内的联系,一个好的内聚模块应当恰好做一件事。它描述的是模块内的功能联系。 而耦合是软件结构中各模块之间相互连接的一种度量,耦合强弱取决于模块间接口的复杂程度、进入或访问一...其中内聚是从功能角度来度量模块内的联系,一个好的内聚模块应当恰好做一件事。它描述的是模块内的功能联系。
而耦合是软件结构中各模块之间相互连接的一种度量,耦合强弱取决于模块间接口的复杂程度、进入或访问一个模块的点以及通过接口的数据。
高内聚低耦合,是软件工程中的概念,是判断设计好坏的标准,主要是面向对象的设计,主要是看类的内聚性是否高,耦合度是否低。扩展资料:
程序开发中的低耦合高内聚
模块之间联系越紧密,其耦合性就越强,模块之间越独立则越差,模块间耦合的高低取决于模块间接口的复杂性,调用的方式以及传递的信息。
形象的说,就是要将代码写的和电脑一样,主类就是电脑的主机箱,当程序需要实现什么功能的时候只需要加其他的类引入接口,就像电脑上的usb接口。
一个完整的系统,模块与模块之间,尽可能的使其独立存在。也就是说,让每个模块,尽可能的独立完成某个特定的子功能。
模块与模块之间的接口,尽量的少而简单。如果某两个模块间的关系比较复杂的话,最好首先考虑进一步的模块划分。这样有利于修改和组合。
在程序开发中,尽量做到低耦合高内聚,这样程序的维护成本以及可读性也会大大增强。 -
耦合式是什么意思_高内聚 ,低耦合 到底是什么意思?
2020-12-21 06:07:56总会听到大牛们说到“高内聚,...一个模块中各个元素之间的联系的紧密程度,如果各个元素(语句、程序段)之间的联系程度越高,则内聚性越高,即‘高内聚’ !如: 一个项目中有20个方法调用良好,但是要修改了其中一个...总会听到大牛们说到“高内聚,低耦合”,不是特别明白,最近查阅了一些资料,才明白。
‘高内聚,低耦合’是相对于代码而言,一个项目中:
每个模块之间相互联系的紧密程度,模块之间联系越紧密,则耦合性越高,模块的独立性就越差!反之同理;
一个模块中各个元素之间的联系的紧密程度,如果各个元素(语句、程序段)之间的联系程度越高,则内聚性越高,即‘高内聚’ !
如: 一个项目中有20个方法调用良好,但是要修改了其中一个,另外的19个都要进行修改,这就是高耦合!独立性太差!
现在的软件结构设计,都会要求“高内聚,低耦合”,来保证软件的高质量!mark!
转载:”高内聚 ,低耦合“到底是什么意思?blog.csdn.net
1.什么是高内聚,低耦合?
可以用简单的两句话来形容这两个词儿:
高内聚:躲进小楼成一统;
低耦合:各人自扫门前雪(牵一发而动全身)。
2.这是软件工程中的概念
首先要知道一个软件是由多个子程序组装而成,
而一个程序由多个模块(方法)构成!
而内聚就是指程序内的各个模块之间关系的紧密程度,
耦合是指各个外部程序(子程序)之间关系的紧密程度.
所以很容易明白,为什么要高内聚?模块之间的关系越紧密,出错就越少!
低耦合?子程序间的关系越复杂,就会产生更多的意想不到的错误!会给以后的维护工作带来很多麻烦!
// 注释:“内紧而外松”
内紧:程序内的模块之间要紧密相关,形成一个高效的功能单元;(旨在—创建高效的代码)
外松:程序之间呢,要尽可能的不关联,各自实现各自的功能。(旨在—实现分工)
3. 程序开发到高级阶段就是一个大工程,从头到尾由一个人实现是不可能的,于是就要分工模块化完成。即使是由一人完成的程序,内部按照MVC模式的话,也会由subroutine来完成各项功能。于是,对于模块化的开发,就有了这样的要求:高内聚低耦合。 // subroutine:子程序
如何理解这么晦涩的词儿呢?我们可以反过来看,如果不满足这个条件的程序会出现什么情况。低内聚的程序,就是“东一榔头西一棒棰”,想要用一个变量就当即定义一个变量。用完的变量也不清空,使用之前也不初始化。让人觉得零件落了一地;高耦合的程序,则“牵一发则动全身”。如果修改了某一个模块的接口,其他相关的模块都要从头重新测试。即使以前测试通过的,也受其改动的影响,要重新测试。由此会造成测试不完全而噩梦连连。做到这2点,对于OO的程序非常重要。各个模块,各司其职,将其功能在模块内,发挥之极;而在模块外,其他模块不用关心它是如何做到的,只要关心拿到的数据是满足自己需要的格式就可以了。这样即使以后修改起来,也知道在哪儿修改,怎么修改。修改了以后,造成的影响,以及可以控制和预知测试的范围。
转载:什么是高内聚,低耦合?_dongxiaohui2008的专栏-CSDN博客blog.csdn.net
-
单片机的高低电平是什么意思_高内聚 ,低耦合 到底是什么意思?
2021-01-15 05:07:44总会听到大牛们说到“高内聚...一个模块中各个元素之间的联系的紧密程度,如果各个元素(语句、程序段)之间的联系程度越高,则内聚性越高,即‘高内聚’ !如: 一个项目中有20个方法调用良好,但是要修改了其中一个...总会听到大牛们说到“高内聚,低耦合”,不是特别明白,最近查阅了一些资料,才明白。
‘高内聚,低耦合’是相对于代码而言,一个项目中:
每个模块之间相互联系的紧密程度,模块之间联系越紧密,则耦合性越高,模块的独立性就越差!反之同理;
一个模块中各个元素之间的联系的紧密程度,如果各个元素(语句、程序段)之间的联系程度越高,则内聚性越高,即‘高内聚’ !
如: 一个项目中有20个方法调用良好,但是要修改了其中一个,另外的19个都要进行修改,这就是高耦合!独立性太差!
现在的软件结构设计,都会要求“高内聚,低耦合”,来保证软件的高质量!mark!
转载:
”高内聚 ,低耦合“到底是什么意思?blog.csdn.net1.什么是高内聚,低耦合?
可以用简单的两句话来形容这两个词儿:
高内聚:躲进小楼成一统;
低耦合:各人自扫门前雪(牵一发而动全身)。2.这是软件工程中的概念
首先要知道一个软件是由多个子程序组装而成,
而一个程序由多个模块(方法)构成!
而内聚就是指程序内的各个模块之间关系的紧密程度,耦合是指各个外部程序(子程序)之间关系的紧密程度.
所以很容易明白,为什么要高内聚?模块之间的关系越紧密,出错就越少!
低耦合?子程序间的关系越复杂,就会产生更多的意想不到的错误!会给以后的维护工作带来很多麻烦!
// 注释:“内紧而外松”
内紧:程序内的模块之间要紧密相关,形成一个高效的功能单元;(旨在—创建高效的代码)
外松:程序之间呢,要尽可能的不关联,各自实现各自的功能。(旨在—实现分工)
3. 程序开发到高级阶段就是一个大工程,从头到尾由一个人实现是不可能的,于是就要分工模块化完成。即使是由一人完成的程序,内部按照MVC模式的话,也会由subroutine来完成各项功能。于是,对于模块化的开发,就有了这样的要求:高内聚低耦合。 // subroutine:子程序如何理解这么晦涩的词儿呢?我们可以反过来看,如果不满足这个条件的程序会出现什么情况。低内聚的程序,就是“东一榔头西一棒棰”,想要用一个变量就当即定义一个变量。用完的变量也不清空,使用之前也不初始化。让人觉得零件落了一地;高耦合的程序,则“牵一发则动全身”。如果修改了某一个模块的接口,其他相关的模块都要从头重新测试。即使以前测试通过的,也受其改动的影响,要重新测试。由此会造成测试不完全而噩梦连连。做到这2点,对于OO的程序非常重要。各个模块,各司其职,将其功能在模块内,发挥之极;而在模块外,其他模块不用关心它是如何做到的,只要关心拿到的数据是满足自己需要的格式就可以了。这样即使以后修改起来,也知道在哪儿修改,怎么修改。修改了以后,造成的影响,以及可以控制和预知测试的范围。
转载:
什么是高内聚,低耦合?_dongxiaohui2008的专栏-CSDN博客blog.csdn.net -
什么是高内聚、低耦合?
2018-08-30 09:23:01有个例子很容易明白:一个程序有50个函数,这个... 起因:模块独立性指每个模块只完成系统要求的独立子功能,并且与其他模块的联系最少且接口简单,两个定性的度量标准――耦合性和内聚性。 耦合性也称块间联系...有个例子很容易明白:一个程序有50个函数,这个程序执行得非常好;然而一旦你修改其中一个函数,其他49个函数都需要做修改,这就是高耦合的后果。
一旦你理解了它,你编写概要设计的时候设计类或者模块自然会考虑到“高内聚,低耦合”起因:模块独立性指每个模块只完成系统要求的独立子功能,并且与其他模块的联系最少且接口简单,两个定性的度量标准――耦合性和内聚性。
耦合性也称块间联系。指软件系统结构中各模块间相互联系紧密程度的一种度量。模块之间联系越紧密,其耦合性就越强,模块的独立性则越差。模块间耦合高低取决于模块间接口的复杂性、调用的方式及传递的信息。耦合性分类(低――高): 无直接耦合;数据耦合;标记耦合;控制耦合;公共耦合;内容耦合;
1 无直接耦合:
2 数据耦合: 指两个模块之间有调用关系,传递的是简单的数据值,相当于高级语言的值传递;
3 标记耦合: 指两个模块之间传递的是数据结构,如高级语言中的数组名、记录名、文件名等这些名字即标记,其实传递的是这个数据结构的地址;
4 控制耦合: 指一个模块调用另一个模块时,传递的是控制变量(如开关、标志等),被调模块通过该控制变量的值有选择地执行块内某一功能;
5 公共耦合: 指通过一个公共数据环境相互作用的那些模块间的耦合。公共耦合的复杂程序随耦合模块的个数增加而增加。
6 内容耦合: 这是最高程度的耦合,也是最差的耦合。当一个模块直接使用另一个模块的内部数据,或通过非正常入口而转入另一个模块内部。
内聚性又称块内联系。指模块的功能强度的度量,即一个模块内部各个元素彼此结合的紧密程度的度量。若一个模块内各元素(语名之间、程序段之间)联系的越紧密,则它的内聚性就越高。
内聚性匪类(低――高): 偶然内聚;逻辑内聚;时间内聚;通信内聚;顺序内聚;功能内聚;1 偶然内聚: 指一个模块内的各处理元素之间没有任何联系。
2 逻辑内聚: 指模块内执行几个逻辑上相似的功能,通过参数确定该模块完成哪一个功能。
3 时间内聚: 把需要同时执行的动作组合在一起形成的模块为时间内聚模块。
4 通信内聚: 指模块内所有处理元素都在同一个数据结构上操作(有时称之为信息内聚),或者指各处理使用相同的输入数据或者产生相同的输出数据。
5 顺序内聚: 指一个模块中各个处理元素都密切相关于同一功能且必须顺序执行,前一功能元素输出就是下一功能元素的输入。
6 功能内聚: 这是最强的内聚,指模块内所有元素共同完成一个功能,缺一不可。与其他模块的耦合是最弱的。
耦合性与内聚性是模块独立性的两个定性标准,将软件系统划分模块时,尽量做到高内聚低耦合,提高模块的独立性,为设计高质量的软件结构奠定基础。
-
高质量的子程序—高内聚
2009-06-30 23:31:00对于子程序而言,内聚性是指子程序中各种操作之间联系的紧密程序。什么样才是高质量的子程序,其中一点就是高内聚性,其目标是让每一个子程序只把一件事做好,不再做任何其他事情。 关于内聚的讨论一般会涉及到内聚... -
Java封装性详解
2021-02-19 16:06:59Java封装性特征详解什么是封装性?为什么要封装this关键字 什么是封装性?为什么要封装 为什么要封装? 通过封装,可以实现对属性的数据访问限制。 封装性的体现:四大权限修饰符 其中四大权限修饰符为:priavte... -
MaintainableCSS 《可维护性 CSS》 --- 模板篇
2017-07-03 17:15:00什么是模块(Modules) ? 模块是一个特别的独立单元,可以与其他模块组合以形成更复杂的结构。 在客厅里,我们可以认为电视,沙发和墙艺术是模块。它们聚在一起创造一个可用的房间。 如果我们把其中一个拿走,其他的能... -
2013年茂名电大地域文化(岭南文化)形成性考核册作业答案
2013-05-14 11:58:262.岭南民俗既有中原传统的东西,也有百越古族的遗风,还充满洋味,形成这种奇异特色的原因是什么? 答:岭南古为百越之地,是百越族居住的地方,长期以来,南岭山脉阻碍了岭南地区与中原的交通与经济联系,使岭南... -
(转载)总体设计-模块化 层次图 结构图
2012-10-09 11:22:56总体设计-模块化 层次图 结构图 1、模块化设计的原理包括什么?为了提高软件的可维护性,其中,模块独立性最重要的,是评价软件结构质量的首要标准。...什么是内聚,什么是耦合(P97);在面向数据... -
面向对象三大特征之封装
2020-08-03 20:52:55封装,即隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读和修改的访问级别;...什么是高内聚低耦合 封装性的体现 方法其实也是一种封装 关键字private的封装 private关键字的使用 ... -
天津大学902软件工程2019年考研真题回忆
2018-12-26 17:44:45一、名词解释(5*8) ...2.什么是内聚?它包括那些类型? 3.什么是软件的可维护性?它有哪些度量? 4.请画出下列类所具有的关系。(会给图,其中包括接口类) 5.请对上述程序进行等价类划分并设计一组测试用例。... -
软件架构师应该知道的97件事之概括76-90
2015-10-24 23:18:3276、命名要恰如其分 如果都不知道一个东西应该叫什么,那你肯定不知道它究竟是什么。如果你不知道它究竟是什么,那么你肯定不能坐下来为它编写代码。 77、稳定的问题才能产生高质量的...*内聚性:问题块在概念上市统 -
javase
2018-12-07 21:01:361.什么是抽象,继承,封装,多态性 抽象:定义一个类,实际上把一类事物的公共属性和行为提取出来,形成一个物理模型,这种研究的方法叫做抽象。减少复用性。低耦合高内聚 2.封装就是把数据和数据操作封装在一起,... -
设计模式VS三层架构
2013-01-22 21:29:54设计模式遵循的设计原理为"高内聚,低耦合".设计模式的核心思想是代码的可重用性.GOR将23中设计模式分为三 大类,分别是:创建性,结构性和行为型..其中,创建型模式抽象了实例化过程,它们帮助一个系统独立于如何... -
K-均值聚类(K-Means)算法
2020-02-26 20:02:45K-均值聚类(K-Means)算法 在数据挖掘中,聚类是一个很重要的概念。...“类”指的是具有相似性的集合,聚类是指将数据集划分为若干类,使得各个类之内的数据最为相似,而各个类之间的数据相似度差别尽可能的大。聚... -
三层架构和例子
2017-12-26 20:15:41前言 ...我们使用三层的目的是为了“高内聚,低耦合”的思想。下边就来说一说三层架构的优点,以及缺点。 优点和缺点 优点 1、开发人员可以只关注整个结构中的其中某一层; 2、可以很容 -
软件工程知识点
2012-12-02 21:34:25在进行概要设计时,模块的独立性是一个有关质量的重要技术性指标,可以使用模块的内聚、耦合这两个定性参数对模块独立性进行度量。 2.软件详细设计 设计工作的第二步是详细设计,它以概要设计为依据,用于确定软件... -
计算机二级公共基础知识
2011-04-30 14:00:09算法一般具有4个基本特征:可行性、确定性、有穷性、拥有足够的情报。 (2)算法的基本运算和操作 算法的基本运算和操作包括:算术运算、逻辑运算、关系运算、数据传输。 (3)算法的3种基本控制结构 算法的3种基本... -
软件工程-理论与实践(许家珆)习题答案
2011-01-12 00:49:42需求分析阶段的基本任务是什么? 答: 需求分析是当前软件工程中的关键问题,需求分析阶段的任务是:在可行性分析的基础上,进一步了解、确定用户需求。准确地回答 “系统必须做什么?” 的问题。获得需求规格说 ... -
Oracle Database 9i10g11g编程艺术:深入数据库体系结构(第2版)--详细书签版
2013-02-03 11:42:53并利用具体的例子来全面介绍每个特性,不仅讨论了各个特性是什么,还说明了它是如何工作的,如何使用这个特性来开发软件,以及有关的常见陷阱。 本书面向所有oracle 数据库应用开发人员和dba。 作译者 作者 ... -
Oracle 9i & 10g编程艺术:深入数据库体系结构(09年度畅销榜TOP50)(08年度畅销榜TOP50)--详细书签版
2013-02-06 18:24:20CruiseYoung提供的带有详细书签的电子书籍目录 ... Oracle 9i & 10g编程艺术:深入...第9章讨论redo和undo,解释了它们分别是什么,并指出如何避免各种可能出现的错误。第10章介绍了各种类型的表,其中最重要的是堆组织表... -
Oracle DBA突击:帮你赢得一份DBA职位--详细书签版
2013-02-06 15:56:40从另一项“每个DBA管理的数据库数量”调查结果(如下图)也可以看到DBA对于企业的重要性(数据来源于ITPUB),约有75%的DBA需要管理5个以上的数据库,其中28.7%的DBA需要管理超过30个数据库。读者可能对这个数字... -
软件工程教程
2012-07-06 23:10:29问:开发这个软件目标是什么? 答: 提高用户对音乐的学习和娱乐 参与创作音乐 项目背景--钢琴练奏师 问:为什么传统音乐程序不好? 答: 传统音乐程序功能单一,容易令人感到枯燥无味,没有吸引力; 传统音乐... -
4、肝主筋,阴器为宗筋之汇,若情志不遂,忧思郁怒,肝失疏泄条达,则宗筋所聚无能。5、湿热下注,宗筋弛纵。 肾虚是肾脏精气阴阳不足所产生的诸如精神疲乏、头晕耳鸣、健忘脱发、腰脊酸痛、遗精阳痿、男子不育、...
-
基于AT89S52 单片的频率计
2010-01-04 08:47:37用数字显示被测信号频率的仪器,被测信号可以是正弦波,方波或其它周期性 变化的信号。因此,数字频率计是一种应用很广泛的仪器 电子系统非常广泛的应用领域内,到处可见到处理离散信息的数字电路。 数字电路制造... -
天猫前端基础技术体系MAP简介
2021-01-10 03:54:06| 模块内聚性高,对外API统一 | 模块被调用方式不可控 | | 执行期无seed,降低运行期复杂度 | seed体积庞大,也是性能上的负担 | <p>cdn combo的优势对比: | npm | cdn combo | | --- | --... -
数据库系统基础:初级篇(第5版)(讲述数据库系统原理的经典教材)--详细书签版
2013-04-05 13:45:321.8 什么时候不应该使用DBMS 18 1.9 小结 18 复习题 18 练习题 19 选读文献 19 第2章 数据库系统的概念和体系结构 20 2.1 数据模型、模式和实例 20 2.1.1 数据模型的分类 21 2.1.2 模式、... -
重新认识Angular
2020-12-26 19:07:05<p>Angular模块把组件、指令和管道打包成内聚的功能块,每个模块聚焦于一个特性区域、业务领域、工作流或通用工具。 模块化思想 功能模块抽象层层放射到整个应用程序。 <pre><code> markdown 根模块 ├── ... -
Oracle性能诊断艺术(Oracle数据库优化的里程碑式著作)--详细书签版
2012-08-23 01:04:131.2 什么是性能问题 5 1.2.1 系统监控 6 1.2.2 响应时间监控 6 1.2.3 强迫调优失调症 6 1.3 如何解决性能问题 7 1.3.1 业务角度与系统角度 7 1.3.2 把问题分类 8 1.3.3 解决问题 8 1.4 小结 9 第...