起因:模块独立性指每个模块只完成系统要求的独立子功能,并且与其他模块的联系最少且接口简单,两个定性的度量标准――耦合性和内聚性。

    耦合性也称块间联系。指软件系统结构中各模块间相互联系紧密程度的一种度量。模块之间联系越紧密,其耦合性就越强,模块的独立性则越差。模块间耦合高低取决于模块间接口的复杂性、调用的方式及传递的信息。
耦合性分类(低――高): 无直接耦合;数据耦合;标记耦合;控制耦合;公共耦合;内容耦合;
1 无直接耦合:
2 数据耦合: 指两个模块之间有调用关系,传递的是简单的数据值,相当于高级语言的值传递;
3 标记耦合: 指两个模块之间传递的是数据结构,如高级语言中的数组名、记录名、文件名等这些名字即标记,其实传递的是这个数据结构的地址;
4 控制耦合: 指一个模块调用另一个模块时,传递的是控制变量(如开关、标志等),被调模块通过该控制变量的值有选择地执行块内某一功能;
5 公共耦合: 指通过一个公共数据环境相互作用的那些模块间的耦合。公共耦合的复杂程序随耦合模块的个数增加而增加。
6 内容耦合: 这是最高程度的耦合,也是最差的耦合。当一个模块直接使用另一个模块的内部数据,或通过非正常入口而转入另一个模块内部。
内聚性又称块内联系。指模块的功能强度的度量,即一个模块内部各个元素彼此结合的紧密程度的度量。若一个模块内各元素(语名之间、程序段之间)联系的越紧密,则它的内聚性就越高。
    内聚性匪类(低――高): 偶然内聚;逻辑内聚;时间内聚;通信内聚;顺序内聚;功能内聚;
1 偶然内聚: 指一个模块内的各处理元素之间没有任何联系。
2 逻辑内聚: 指模块内执行几个逻辑上相似的功能,通过参数确定该模块完成哪一个功能。
3 时间内聚: 把需要同时执行的动作组合在一起形成的模块为时间内聚模块。
4 通信内聚: 指模块内所有处理元素都在同一个数据结构上操作(有时称之为信息内聚),或者指各处理使用相同的输入数据或者产生相同的输出数据。
5 顺序内聚: 指一个模块中各个处理元素都密切相关于同一功能且必须顺序执行,前一功能元素输出就是下一功能元素的输入。
6 功能内聚: 这是最强的内聚,指模块内所有元素共同完成一个功能,缺一不可。与其他模块的耦合是最弱的。
耦合性与内聚性是模块独立性的两个定性标准,将软件系统划分模块时,尽量做到高内聚低耦合,提高模块的独立性,为设计高质量的软件结构奠定基础。
有个例子很容易明白:一个程序有50个函数,这个程序执行得非常好;然而一旦你修改其中一个函数,其他49个函数都需要做修改,这就是高耦合的后果。
一旦你理解了它,你编写概要设计的时候设计类或者模块自然会考虑到“高内聚,低耦合”。
转载自:http://www.cnblogs.com/robnetcn/archive/2012/04/15/2449008.html

什么是高耦合低内聚?相关推荐

  1. 详解高耦合低内聚,低耦合高内聚

    什么是高耦合低内聚,低耦合高内聚 耦合:不就是耦合系数高与低吗,就是关联性强不强 内聚:内聚是指是不是具有很强的功能性,一个模块或方法是不是只干一件事,越强的内聚或者高内聚模块应当恰好只做一件事. 用 ...

  2. 设计模式——高耦合低内聚

    内聚:每个模块尽可能独立完成自己的功能,不依赖于外部模块的代码. 耦合:模块与模块之间接口的复杂程度. 通常程序结构中各模块的内聚程度越高,模块间的耦合程度就越低. 高内聚:尽可能让类的每个成员方法只 ...

  3. 从高耦合到低耦合到底有多远?

    一切都是拥抱变化,反过来说,如果没有变化或者需求很稳定,那么一切就是过度设计.所以,一切都要看情况,回到了马克思主义的辩证学.呵呵. 无论书还是博客, 耦合这个词已被无数人说烂,任何一位程序员都会告诉 ...

  4. mysql耦合_内聚与耦合

    简单理解一下内聚和耦合. 什么是模块 模块就是从逻辑上将系统分解为更细微的部分,分而治之. 复杂问题因为复杂性的问题,比较难解决,但是可以将复杂问题拆解为若干简单问题,逐个击破地解决这些简单问题,最后 ...

  5. 软件工程-耦合与内聚简单实例

    文章目录 一.耦合 1.独立 2.数据耦合 3.控制耦合 4.特征耦合 5.公共环境耦合 6.内容耦合(耦合程度最高) 二.内聚 1.偶然内聚 2.逻辑内聚 3.时间内聚 4.过程内聚 5.通信内聚 ...

  6. 抽象、低内聚、难变更,你还在用“堆栈”组织代码?

    更多内容关注微信公众号:fullstack888 在企业代码库中,目前最流程的代码组织方式是按照技术栈的层次对所有类进行分组,即"堆栈"(stack)风格.但这种风格存在抽象不恰当 ...

  7. 十年老码农吐血经验:跳槽千万不能选高年终低base的公司,超过15薪就要慎重!...

    低base高年终VS高base低年终,哪个更好? 一个工作十年的老码农总结了自己的经验:跳槽千万不能选年终月数多的公司,超过15薪就要好好掂量掂量.能选外企就选外企,奖金基本就是一个月,不会坑你. 一 ...

  8. 《JAVA练习题目2》 输入十个学生的考试成绩,将及格学生的成绩从高到低排序输出。

    题目内容: 输入十个学生的考试成绩,将及格学生的成绩从高到低排序输出. 输入格式: 10个学生的成绩,以空格分割. 输出格式: 及格成绩从高到低,成绩之间用空格分隔,最后一个分数后面也有一个空格.如果 ...

  9. 内存地址 哪个程序_记一次排查线上程序内存的忽高忽低,又是大集合惹祸了...

    一:背景 1. 讲故事 昨天继续还技术债,优化一轮后的程序拉到线上后内存继续忽高忽低,低的时候20G,高的时候30G,过了一会又下降了几个G,毫无疑问,程序中有什么集合或者什么操作占用了大量内存,所以 ...

最新文章

  1. SAP MM初阶之ME12里为啥只能维护少量条件类型的价格?
  2. VS2010/MFC编程入门之十七(对话框:文件对话框)
  3. 【编程】二叉树的先序、中序、后序遍历
  4. boost::graph::isomorphism用法的测试程序
  5. “乞讨者”王小波与“怪物”巴尔扎克
  6. Adobe illustrator 排版后图形导出 - 连载 3
  7. COM的八个经验和教训
  8. C#学习笔记第一篇——类进阶
  9. 处女的第一次不一定会流血!很感人 我都流泪了!
  10. 《大象 Thinking in UML》学习笔记(三)——UML核心元素之参与者、用例
  11. 分布式 HTAP 数据库 ADB PG 架构解析
  12. 爱分享 IE地址栏显示空白?360电脑救援巧修复
  13. 优化计算机组策略,7种优化技巧优化Windows 10系统 提高电脑性能
  14. 动态代理及JDK动态代理源码分析
  15. 基于One—stage的目标检测算法综述
  16. 中专毕业计算机,我是一个中专毕业生,学的是计算机专业,对pho..._求职实习_帮考网...
  17. 十二种卫星地图的快速比较和选择方法
  18. 另类的 ETL 工具 sed 进阶
  19. GJB-150三防试验机构,国军标试验机构
  20. 33. 搜索旋转排序数组

热门文章

  1. 区块链游戏开发注意事项
  2. 京东坐稳全渠道最大家电零售商之位,苏宁怼京东815恐无成效
  3. html5 application cache 空间限制,HTML5离线存储之Application Cache
  4. python--dict容器
  5. 稀疏矩阵——实现三元组,十字链表下的稀疏矩阵的加、转、乘的
  6. mac 在连接wifi时出现 无互联网连接 的警告,叹号
  7. 火狐浏览器点击下载按钮没反应
  8. php运算符综合实例,php中三元运算符的嵌套实例
  9. Uedit32设置字体大小
  10. AS部署失败,Device supports,but APK only supports...