标题: 关于藕合和内聚的问题
性别:未知-离线 Maxwell

代王
监管使
枢密直学士
山南西道节度使

Rank: 27Rank: 27Rank: 27Rank: 27Rank: 27Rank: 27
柱国(正二品)
组别 诸侯
级别 征东将军
好贴 4
功绩 1845
帖子 5801
编号 622
注册 2004-7-7


发表于 2005-2-17 21:18 资料 文集 短消息 看全部作者
先随便说几句,有空再补充

0. 耦合和内聚什么意思应该知道了吧,就不说了,反正要追求高内聚低耦合(而不是高内聚无耦合,耦合和内聚是一定存在的,有高低之分而已)
耦合内聚也跟功能的划分有关,如果一味追求高内聚可能造成功能过度细分,甚至一个加法运算都封装为一个模块。需要根据具体的问题以及经验来划分功能。没有必要每写一个模块都要去分析这个模块符合哪种程度的定义。而且有些时候低内聚高耦合也是必须的,比如初始化函数,无论怎么写总会在某个地方造成至少时间内聚。

1. 偶然内聚
此内聚只有偶然性缺乏必然性,比如将打开文件和计算两个数的和两个功能放在一个模块里,没有任何道理,只是作者想这么写就这么写了。
2. 逻辑内聚
模块内各功能在逻辑上存在一定关系,比如读文件读键盘读串口的功能放在一起。
3. 时间内聚
只是因为模块内各功能在时间上需要一起执行而放在一起,比如在初始化时读数据初始化打印机初始化数组各功能。
4. 过程内聚
基本同3,个人理解是3中各功能顺序无关而本层次内聚各功能需按一定顺序执行。
5. 通讯内聚
功能间需要通讯而聚合在一起,通常是两个功能需要操作同一个数据,比如读写缓冲区的两个功能放在一起。
6. 顺序内聚
基本同4,并且前一个的输出是后一个的输入。比如一个多遍压缩算法。
7. 功能内聚
模块中所有成分都是完成一个特定功能所必须的。


顶部
性别:未知-离线 Maxwell

代王
监管使
枢密直学士
山南西道节度使

Rank: 27Rank: 27Rank: 27Rank: 27Rank: 27Rank: 27
柱国(正二品)
组别 诸侯
级别 征东将军
好贴 4
功绩 1845
帖子 5801
编号 622
注册 2004-7-7


发表于 2005-2-18 13:19 资料 文集 短消息 看全部作者


QUOTE:
原帖由秋风落叶于2005-02-18, 11:01:32发表
呵呵。一般称为“经验内聚”(也是纯净水)

经验内聚是什么?  真没听说过。


顶部
性别:未知-离线 Maxwell

代王
监管使
枢密直学士
山南西道节度使

Rank: 27Rank: 27Rank: 27Rank: 27Rank: 27Rank: 27
柱国(正二品)
组别 诸侯
级别 征东将军
好贴 4
功绩 1845
帖子 5801
编号 622
注册 2004-7-7


发表于 2005-2-18 13:33 资料 文集 短消息 看全部作者
版上难得来个MM啊,欢迎欢迎,常来看看啊。

这个是软件工程的东西吧,呵呵,记不清了。
顶部
性别:未知-离线 Maxwell

代王
监管使
枢密直学士
山南西道节度使

Rank: 27Rank: 27Rank: 27Rank: 27Rank: 27Rank: 27
柱国(正二品)
组别 诸侯
级别 征东将军
好贴 4
功绩 1845
帖子 5801
编号 622
注册 2004-7-7


发表于 2005-2-18 18:05 资料 文集 短消息 看全部作者
在设计时不能预先定义某一模块要做到某一级的耦合内聚,耦合内聚更像是作为评价和改进模块时的一种度量吧。
顶部
性别:未知-离线 Maxwell

代王
监管使
枢密直学士
山南西道节度使

Rank: 27Rank: 27Rank: 27Rank: 27Rank: 27Rank: 27
柱国(正二品)
组别 诸侯
级别 征东将军
好贴 4
功绩 1845
帖子 5801
编号 622
注册 2004-7-7


发表于 2005-2-18 22:24 资料 文集 短消息 看全部作者
举例作用不大吧,如果你理解了,我描述的那些例子就够了,如果不理解,看到例子也无法应用到其他的模块中。

或者把我举的例子写成程序就可以了。
顶部

正在浏览此帖的会员 - 共 1 人在线




当前时区 GMT+8, 现在时间是 2025-8-9 04:06
京ICP备2023018092号 轩辕春秋 2003-2023 www.xycq.org.cn

Powered by Discuz! 5.0.0 2001-2006 Comsenz Inc.
Processed in 0.010147 second(s), 9 queries , Gzip enabled

清除 Cookies - 联系我们 - 轩辕春秋 - Archiver - WAP