Windows编程开发中的内聚性、内聚类型、耦合性和耦合类型

文章介绍了软件设计的两大基本原则——信息隐蔽性和模块独立性,重点讨论了内聚性的7种类型(从偶然内聚到功能内聚)和耦合性的7种类型(从非直接耦合到内容耦合),并提供了便于记忆的口诀。作者是拥有25年IT经验的高级工程师,分享了其在不同技术时代的经历。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 我是荔园微风,作为一名在IT界整整25年的老兵,今天总结一下Windows编辑开发中的内聚性、内聚类型、耦合性和耦合类型。

软件设计的基本原则是信息隐蔽性与模块独立性。

模块设计目标是高内聚,低耦合。

然后记住下面这张神图,一张图可抵千言万语。

一、内聚。

内聚是一个模块内部各个元素彼此结合的紧密程度的度量。一个模块内部各个元素之间的联系越紧密,则它的内聚性就越高,相对地,它与其他模块之间的耦合性就会降低,而模块独立性就越强。

内聚性按强度从低到高有7种类型如下。

偶然内聚(最弱)

又称巧合内聚,模块的各成分之间毫无关系

逻辑内聚

逻辑上相关的功能被放在同一模块中。如一个模块读取各种不同类型外设的输入

时间内聚

模块完成的功能必须在同一时间内执行(如系统初始化),但这些功能只是因为时间因素关联在一起

过程内聚

模块内部的处理成分是相关的,而且这些处理必须以特定的次序执行

通信内聚

模块的所有元素都操作同一个数据集或生成同一个数据集

顺序内聚

模块的各个成分和同一个功能密切相关,而且一个成分的输出作为另一个成分的输入

功能内聚(最强)

模块的所有成分对于完成单一的功能都是必需的,则称为功能内聚

内聚性参考记忆口诀为:“偶逻时过通顺功”。

也可以记作:然巡候,沿路走去打了拳法,拳法打后通顺了我气,真是好夫啊。

怎么样,用这个方法好记吧,哈哈。

二、耦合

耦合是各模块间结合紧密度的一种度量。

耦合性由低到高有7种类型如下。

非直接耦合(最低)

模块之间没有直接关系,模块之间的联系完全通过主模块的控制和调用来实现

数据耦合

模块访问,通过简单数据参数来交换输入、输出信息

标记耦合

一个数据结构的一部分借助于模块接口被传递

控制耦合

一个模块通过传送开关、标识、名字等控制信息明显地控制选择另一个模块的功能

外部耦合

一组模块都访问同一全局简单变量而不是同一全局数据结构,而且不是通过参数表传递该全局变量的信息

公共耦合

多个模块访问同一个全局数据区

内容耦合(最高)

如果发生下列情形,两个模块间就发生了内容耦合:(1)一个模块直接访问另一个模块的内部数据。(2)一个模块不通过正常入口转到另一模块内部。(3)两个模块有一部分程序代码重叠(只可能出现在汇编语言中)。(4)一个模块有多个入口

耦合性参考记忆口诀为:“非数标控外公内”。

也可以记作:如果要用准来制对的和对部工作流程,那一定是很严格的了。

怎么样,用这个方法好记吧,哈哈。

作者简介:荔园微风,1981年生,高级工程师,浙大工学硕士,软件工程项目主管,做过程序员、软件设计师、系统架构师,早期的Windows程序员,Visual Studio忠实用户,C/C++使用者,是一位在计算机界学习、拼搏、奋斗了25年的老将,经历了UNIX时代、桌面WIN32时代、Web应用时代、云计算时代、手机安卓时代、大数据时代、ICT时代、AI深度学习时代、智能机器时代,我不知道未来还会有什么时代,只记得这一路走来,充满着艰辛与收获,愿同大家一起走下去,充满希望的走下去。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值