1.什么是高内聚?

内聚针对的是模块内部关系,指的是模块各构成要素间的联系,高内聚说明各构成要素间联系紧密。

2.高内聚的优点

各构成要素间联系紧密,说明各构成要素是实现模块功能充分的存在,没有某一个要素是实现功能不需要的,各要素都被充分地利用了起来,不仅使代码简洁,而且便于维护与复用。试想,假如某一部分对于功能而言有时需要,有时不需要,那么修改模块功能时就需要对情况作出判断,使修改变得复杂。
高内聚的一个重要标志是模块功能单一。假如一个模块实现了两个功能,那么实现这两个功能的代码间的联系必定是松散的,在修改一个功能时很能判断对另一功能的影响,或者将模块迁移到一个环境中时,很能评估另一个不关注的功能对运行的影响。

3.什么是低耦合?

耦合针对的是模块间的关系,指的是模块间的依赖关系,两个模块间依赖较弱,就是低耦合。

4.低耦合的优点

一个模块对其他模块依赖较弱,那么当其他模块发生变化时,只能受到影响较小,在软件中表现为,当某一个模块修改时,自身不需要修改,或者只需简单修改。

参考:

https://baike.so.com/doc/3130751-3299748.html

转载于:https://www.cnblogs.com/tonghun/p/7133435.html

设计思想之高内聚低耦合相关推荐

  1. 8.18 模块设计原则:高内聚低耦合

    8.18 模块设计原则:高内聚低耦合 模块内聚 定义(软考) 块内联系:模块内各元素的关联.交互程度 从功能角度:自己的功能自己实现,不麻烦其它模块 如何实现高内聚 功能内聚:模块的功能尽可能单一 模 ...

  2. Java编程思想之高内聚低耦合

    文章目录 1 前言 2 低耦合 2.1 耦合性定义 2.2 耦合性分类 2.3 使用低耦合 3 高内聚 3.1 高内聚定义 3.2 内聚性分类 4 示例 5 高内聚,低耦合的系统有什么好处呢 6 降低 ...

  3. 软件设计原则:高内聚低耦合

    这是软件工程中的概念,是判断设计好坏的标准,主要是面向OO的设计,主要是看类的内聚性是否高,偶合度是否低. 一个程序有50个函数,这个程序执行得非常好:然而一旦你修改其中一个函数,其他49个函数都需要 ...

  4. 软件设计之——“高内聚低耦合”

    耦合度 一.什么是耦合度 软件设计中通常用耦合度和内聚度作为衡量模块独立程度的标准.划分摸块的一个准则就是高内聚低耦合. 耦合度(Coupling)是对模块间关联程度的度量.耦合的强弱取决与模块间接口 ...

  5. 软件设计之——高内聚低耦合

    耦合度 一.什么是耦合度 软件设计中通常用耦合度和内聚度作为衡量模块独立程度的标准.划分摸块的一个准则就是高内聚低耦合. 耦合度(Coupling)是对模块间关联程度的度量.耦合的强弱取决与模块间接口 ...

  6. 高内聚低耦合设计原则

    高内聚低耦合 高内聚低耦合是模块设计的基本原则.模块设计就像四世同堂居家过日子,妯娌婆媳吃大锅饭.柴米油盐不分你我很容易伤和气:如果亲兄弟明算账,每顿饭都AA又太显得生分,不利于和谐,因此把握好一个度 ...

  7. python模块化设计耦合度_模块化开发——高内聚低耦合

    前言:emmm最近都在赶进度,已经好久没输出了,接下来都使用MakeDown文档写文,推荐大家使用VsCode编译工具,加入Markdown Preview Enhanced插件,创建一个MD文件,复 ...

  8. 浅谈面向对象开发原则:高内聚,低耦合

    软件设计中通常用耦合度和内聚度作为衡量模块独立程度的标准.划分摸块的一个准则就是高内聚低耦合. 这是软件工程中的概念,是判断设计好坏的标准,主要是面向OO的设计,主要是看类的内聚性是否高,偶合度是否低 ...

  9. 最简单理解高内聚低耦合

    低耦合: 耦合就是元素与元素之间的连接,感知和依赖量度.这里说的元素即是功能,对象,系统,子系统.模块. 例如:现在有方法A和方法B 我们在A元素去调用B元素,当B元素有问题或者不存在的时候,A元素就 ...

  10. 知识篇: 面向对象开发原则.高内聚.低耦合+Python安装详细教程+print输出带颜色的方法...

    面系那个对象开发原则.高内聚.低耦合 软件设计中通常用耦合度和内聚度作为衡量模块独立程度的标准.划分摸块的一个准则就是高内聚低耦合. 这是软件工程中的概念,是判断设计好坏的标准,主要是面向OO的设计, ...

最新文章

  1. win7无法打开计算机共享文件,win7不能共享文件的解决方法
  2. linux ping策略打开_linux ping策略打开_如何在Linux服务器禁止和开启ping包 互联网技术圈 互联网技术圈......
  3. W10系统配置java环境变量
  4. 中文分词软件SCWS
  5. 邻接矩阵实现(有向邻接矩阵)、(无向邻接矩阵) 基于C++
  6. 《水经注地图发布服务中间件4.0》性能测试报告
  7. Mac上的三款时钟屏保
  8. 参加天池大数据竞赛是怎样一种体验?
  9. bios卡+型号+hp服务器,HPE Gen9 server UEFI BIOS下升级BIOS 阵列卡 HBA卡固件的操作方法...
  10. 计算机的中央处理器CPU包括什么,中央处理器cpu由哪些组成 中央处理器的作用是什么...
  11. 学习游戏原画需要什么条件或者基础吗?
  12. 插入(希尔)排序时间、空间复杂度
  13. Google Sheet 学习笔记
  14. APS审核经验+审核资料汇总——计算机科学与技术专业上海德语审核
  15. tensorflow实现数据增强(随机裁剪、翻转、对比度设置、亮度设置)
  16. Java数据类型及拓展面试题
  17. Automated pulmonary nodule detection in CT images using deep convolutional neural networks
  18. 【信号与系统】预习笔记(每日更新ing)
  19. Oracle 10g R2 Student PPTs
  20. Kafka 中 AR、ISR、OSR 是什么?ISR 的伸缩性什么?

热门文章

  1. 模板题——单链表双链表,数组模拟的栈和队列,单调栈和单调队列
  2. ENVI去除NDVI/EVI异常值、NAN(not a number,无效值)、无穷大(inf)
  3. 空间中任一点到超平面的距离公式的推导过程
  4. mysqldump 工具的使用
  5. IDEA使用技巧--在文件导航栏中屏蔽指定后缀名的文件
  6. android消息处理机制原理解析
  7. 安卓滚动字幕以及TextSwitcher、ImageSwitcher使用
  8. Android Architecture Blueprints----安卓架构详细分析
  9. View.Post()保证UI带你装逼带你飞
  10. 一个强大的网络库RxEasyHttp