内聚:只模块内部各元素之间联系的紧密程度,也就是代码功能的集中程度。耦合是指模块之间相互联系的紧密程度。

下面介绍七种常见的内聚类型与耦合类型。

根据内聚度从高到低排序:

功能内聚:完成一个单一功能,各个部分协同工作,缺一不可。

顺序内聚:处理元素相关,而且必须顺序执行。

通信内聚:所有处理元素集中在一个数据结构的区域上。

过程内聚:处理元素相关,而且必须按特定的次序执行。

瞬时内聚:所包含的任务必须同时在同一时间内执行(如初始化模块)。

逻辑内聚:完成逻辑上相关的一组任务。

偶然内聚:完成一组没有关系或松散关系的任务

根据耦合度从低到高排序:

非直接耦合:没有直接联系,互不依赖对方。

数据耦合:借助参数传递简单数据。

标记耦合:一个数据结构的一部分借助模块接口被传递。

控制耦合:模块间传递的信息包括用于控制模块内部逻辑的信息。

外部耦合:与软件外部的环境有关。

公共耦合:多个模块引用同一个全局数据区。

内容耦合:一个模块访问另一个模块的内部数据。一个模块不通过正常入口转入另一模块的内部。两个模块有一部分代码重叠。一个模块有多个入口。

软件设计原则之高内聚与低耦合相关推荐

  1. 模块化编程设计原则:高内聚,低耦合

    高内聚,低耦合 高内聚:一个C文件里面的函数只有相互之间的调用,而没有调用其他文件里面的函数,这样可以视为高内聚.尽量减少不同文件里面函数的交叉引用. 低耦合:一个完整的系统,模块与模块之间,尽可能的 ...

  2. 软件设计中的高内聚、低耦合

    一.内聚 1.定义 一个模块内部各元素聚集.关联的程度. 定义的范围在一个模块内部.一个高内聚模块,应该恰好只做一件事.高内聚就是模块内各元素高度聚集.高度关联. 2.特点 高内聚模块具备较好的可靠性 ...

  3. 面向对象原则:高内聚、低耦合。多聚合、少继承

    面向对象原则:高内聚.低耦合.多聚合.少继承 要点概括 [高内聚.低耦合] 内聚:每个模块尽可能独立完成自己的功能,不依赖于模块外部的代码. 耦合:模块与模块之间接口的复杂程度,模块之间联系越复杂耦合 ...

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

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

  5. 高内聚和低耦合的个人理解

    一.什么是高内聚低耦合 1.耦合性也称块间联系.指软件系统结构中各模块间相互联系紧密程度的一种度量.模块之间联系越紧密,其耦合性就越强,模块的独立性则越差.模块间耦合高低取决于模块间接口的复杂性.调用 ...

  6. 设计模式之领航篇高内聚和低耦合

    概述内聚和耦合: 内聚和耦合不是软件工程的专有名词,但是在软件工程衡量软件的标准.但凡用到了这两个词,顿时就感觉了高大上.软件开发过程中遵循高内聚.低耦合的要求,能保证软件的系统的健壮性.内聚指的是独 ...

  7. 你的代码是否按照高内聚、低耦合的原则来设计的?

    我们一直强调软件开发中要按照高内聚.低耦合的设计原则来做代码结构设计.c语言和c++不同,c语言面向过程.c++面向对象. 真正的项目中,要对业务升级,原来的业务函数需要保留,要保证老的功能继续维持, ...

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

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

  9. python模块化设计耦合度_什么是程序设计中的高内聚、低耦合?

    开发者经常遇到一些项目,比如一个真格量化中的策略,要求较高的模块独立性.模块独立性指每个模块只完成系统要求的独立子功能,并且与其他模块的联系最少且接口简单.我们有两个定性的度量标准--耦合性和内聚性. ...

最新文章

  1. 安防企业如何应对市场发展新机遇
  2. 【Kali渗透全方位实战】子域名的概念与探测(DNSenum工具和Sublist3r脚本的使用)
  3. 数据结构:表达式之中缀转后缀
  4. WCF传输大数据的设置
  5. Tarjan的求双连通分量算法
  6. 如何利用云原生技术构建现代化应用?
  7. win7系统开启telnet服务器,小编教你win7系统开启Telnet命令的详细教程
  8. CentOSserverMysql主从复制集群结构
  9. ubuntu安装 zookeeper3.3.6 由于jdk问题启动失败
  10. 职场上个人的核心技术_在职场上,一定要让自身强大起来!
  11. 自动化打包资源混淆集成python实践----资源混淆
  12. mysql5.6 慢查询_MySQL5.6 如何优化慢查询的SQL语句
  13. java http data chunk_HTTP协议之Chunked解析
  14. 大数据时代:如何节省存储成本
  15. 淘宝母婴商品分析-Python
  16. 安装DevExpress后如何在工具箱显示Dev控件
  17. 转铁蛋白(Tf)修饰去氢骆驼蓬碱磁纳米脂质体/香豆素-6脂质体/多柔比星脂质体
  18. uniapp 跳转公众号获其他小程序
  19. FFS(快速文件系统)–Unix文件系统
  20. 清华大学五道口金融学院2023年博士生招生简章(普博+直博)

热门文章

  1. 微信小程序使用Echarts绘制K线图与双曲线图以及实现tab切换
  2. 移宇科技全院血糖管理系统与闭环人工胰腺系统助力患者血糖管理
  3. 拓扑排序-信息学奥赛
  4. kotlin 读书笔记
  5. python程序开机自启动_python 设置开机启动脚本
  6. 利用Python画一颗神奇的树!
  7. 《孩子:挑战》儿童心理学奠基之作摘录分享(三)
  8. python程序忽略警告信息
  9. PKI和X509证书
  10. 罗小波 mysql_千金良方——MySQL性能优化金字塔法则