软件设计原则之高内聚与低耦合
内聚:只模块内部各元素之间联系的紧密程度,也就是代码功能的集中程度。耦合是指模块之间相互联系的紧密程度。
下面介绍七种常见的内聚类型与耦合类型。
根据内聚度从高到低排序:
功能内聚:完成一个单一功能,各个部分协同工作,缺一不可。
顺序内聚:处理元素相关,而且必须顺序执行。
通信内聚:所有处理元素集中在一个数据结构的区域上。
过程内聚:处理元素相关,而且必须按特定的次序执行。
瞬时内聚:所包含的任务必须同时在同一时间内执行(如初始化模块)。
逻辑内聚:完成逻辑上相关的一组任务。
偶然内聚:完成一组没有关系或松散关系的任务
根据耦合度从低到高排序:
非直接耦合:没有直接联系,互不依赖对方。
数据耦合:借助参数传递简单数据。
标记耦合:一个数据结构的一部分借助模块接口被传递。
控制耦合:模块间传递的信息包括用于控制模块内部逻辑的信息。
外部耦合:与软件外部的环境有关。
公共耦合:多个模块引用同一个全局数据区。
内容耦合:一个模块访问另一个模块的内部数据。一个模块不通过正常入口转入另一模块的内部。两个模块有一部分代码重叠。一个模块有多个入口。
软件设计原则之高内聚与低耦合相关推荐
- 模块化编程设计原则:高内聚,低耦合
高内聚,低耦合 高内聚:一个C文件里面的函数只有相互之间的调用,而没有调用其他文件里面的函数,这样可以视为高内聚.尽量减少不同文件里面函数的交叉引用. 低耦合:一个完整的系统,模块与模块之间,尽可能的 ...
- 软件设计中的高内聚、低耦合
一.内聚 1.定义 一个模块内部各元素聚集.关联的程度. 定义的范围在一个模块内部.一个高内聚模块,应该恰好只做一件事.高内聚就是模块内各元素高度聚集.高度关联. 2.特点 高内聚模块具备较好的可靠性 ...
- 面向对象原则:高内聚、低耦合。多聚合、少继承
面向对象原则:高内聚.低耦合.多聚合.少继承 要点概括 [高内聚.低耦合] 内聚:每个模块尽可能独立完成自己的功能,不依赖于模块外部的代码. 耦合:模块与模块之间接口的复杂程度,模块之间联系越复杂耦合 ...
- 软件设计原则:高内聚低耦合
这是软件工程中的概念,是判断设计好坏的标准,主要是面向OO的设计,主要是看类的内聚性是否高,偶合度是否低. 一个程序有50个函数,这个程序执行得非常好:然而一旦你修改其中一个函数,其他49个函数都需要 ...
- 高内聚和低耦合的个人理解
一.什么是高内聚低耦合 1.耦合性也称块间联系.指软件系统结构中各模块间相互联系紧密程度的一种度量.模块之间联系越紧密,其耦合性就越强,模块的独立性则越差.模块间耦合高低取决于模块间接口的复杂性.调用 ...
- 设计模式之领航篇高内聚和低耦合
概述内聚和耦合: 内聚和耦合不是软件工程的专有名词,但是在软件工程衡量软件的标准.但凡用到了这两个词,顿时就感觉了高大上.软件开发过程中遵循高内聚.低耦合的要求,能保证软件的系统的健壮性.内聚指的是独 ...
- 你的代码是否按照高内聚、低耦合的原则来设计的?
我们一直强调软件开发中要按照高内聚.低耦合的设计原则来做代码结构设计.c语言和c++不同,c语言面向过程.c++面向对象. 真正的项目中,要对业务升级,原来的业务函数需要保留,要保证老的功能继续维持, ...
- 8.18 模块设计原则:高内聚低耦合
8.18 模块设计原则:高内聚低耦合 模块内聚 定义(软考) 块内联系:模块内各元素的关联.交互程度 从功能角度:自己的功能自己实现,不麻烦其它模块 如何实现高内聚 功能内聚:模块的功能尽可能单一 模 ...
- python模块化设计耦合度_什么是程序设计中的高内聚、低耦合?
开发者经常遇到一些项目,比如一个真格量化中的策略,要求较高的模块独立性.模块独立性指每个模块只完成系统要求的独立子功能,并且与其他模块的联系最少且接口简单.我们有两个定性的度量标准--耦合性和内聚性. ...
最新文章
- 安防企业如何应对市场发展新机遇
- 【Kali渗透全方位实战】子域名的概念与探测(DNSenum工具和Sublist3r脚本的使用)
- 数据结构:表达式之中缀转后缀
- WCF传输大数据的设置
- Tarjan的求双连通分量算法
- 如何利用云原生技术构建现代化应用?
- win7系统开启telnet服务器,小编教你win7系统开启Telnet命令的详细教程
- CentOSserverMysql主从复制集群结构
- ubuntu安装 zookeeper3.3.6 由于jdk问题启动失败
- 职场上个人的核心技术_在职场上,一定要让自身强大起来!
- 自动化打包资源混淆集成python实践----资源混淆
- mysql5.6 慢查询_MySQL5.6 如何优化慢查询的SQL语句
- java http data chunk_HTTP协议之Chunked解析
- 大数据时代:如何节省存储成本
- 淘宝母婴商品分析-Python
- 安装DevExpress后如何在工具箱显示Dev控件
- 转铁蛋白(Tf)修饰去氢骆驼蓬碱磁纳米脂质体/香豆素-6脂质体/多柔比星脂质体
- uniapp 跳转公众号获其他小程序
- FFS(快速文件系统)–Unix文件系统
- 清华大学五道口金融学院2023年博士生招生简章(普博+直博)