对高内聚,低耦合的理解

Posted on 2007-04-08 16:55 久城 阅读(36346) 评论(14)  编辑  收藏 所属分类: 软件工程
内聚:一个模块内各个元素彼此结合的紧密程度

耦合:一个软件结构内不同模块之间互连程度的度量


最近编码的时候,总是在犹豫是把某个方法封装在一个类里,还是单独的封装成一个类。这让我突然想起内聚耦合这两个名词。

我们一直追求着,高内聚,低耦合。

对于低耦合,我粗浅的理解是:

一个完整的系统,模块与模块之间,尽可能的使其独立存在。

也就是说,让每个模块,尽可能的独立完成某个特定的子功能。

模块与模块之间的接口,尽量的少而简单。

如果某两个模块间的关系比较复杂的话,最好首先考虑进一步的模块划分。

这样有利于修改和组合。

对于高内聚,我粗浅的理解是:

在一个模块内,让每个元素之间都尽可能的紧密相连。

也就是充分利用每一个元素的功能,各施所能,以最终实现某个功能。

如果某个元素与该模块的关系比较疏松的话,可能该模块的结构还不够完善,或者是该元素是多余的。

内聚和耦合,包含了横向和纵向的关系。功能内聚和数据耦合,是我们需要达成的目标。横向的内聚和耦合,通常体现在系统的各个模块、类之间的关系,而纵向的耦合,体现在系统的各个层次之间的关系。

对于我在编码中的困惑,我是这样想的,用面向对象的思想去考虑一个类的封装。
一个方法,如何封装,拿到现实生活中来看,看这种能力(方法)是否是属于这类事物(类)的本能。
如果是,就封装在这个类里。
如果不是,则考虑封装在其它类里。
如果这种能力,很多事物都具有,则一定要封装在这类事物的总类里。
如果这种能力,很多事物都会经常用到,则可以封装成一个总类的静态方法。


欢迎来访!^.^!
本BLOG仅用于个人学习交流!
目的在于记录个人成长.
所有文字均属于个人理解.
如有错误,望多多指教!不胜感激!

Feedback

# re: 对高内聚,低耦合的理解  回复  更多评论   

2008-05-25 16:01 by 达达
谢谢了^_^,正在学习管理信息系统,上课一直没明白耦合和内聚两个概念,看了大侠一文,顿悟

# re: 对高内聚,低耦合的理解  回复  更多评论   

2008-08-13 19:44 by 小李广
不错啊,受用

# re: 对高内聚,低耦合的理解[未登录]  回复  更多评论   

2008-11-18 10:42 by ethan
十分感谢~~

# Rosicky  回复  更多评论   

2009-01-18 11:07 by Rosicky
Learn a lot from u. How are you these days?

# re: 对高内聚,低耦合的理解  回复  更多评论   

2009-09-19 17:47 by hxr
学习,受用!

# re: 对高内聚,低耦合的理解  回复  更多评论   

2010-08-31 12:45 by 魏鹏
谢谢!

# re: 对高内聚,低耦合的理解  回复  更多评论   

2010-09-06 16:42 by 刘辉亚
谢谢

# re: 对高内聚,低耦合的理解  回复  更多评论   

2010-10-15 15:31 by FGW
学习啦 ,非常感谢。
还有,第二个“对于低耦合”是否是笔误? :)

# re: 对高内聚,低耦合的理解  回复  更多评论   

2011-01-12 13:13 by 李根莹
对于我在编码中的困惑,我是这样想的,用面向对象的思想去考虑一个类的封装。
一个方法,如何封装,拿到现实生活中来看,看这种能力(方法)是否是属于这类事物(类)的本能。
如果是,就封装在这个类里。
如果不是,则考虑封装在其它类里。
如果这种能力,很多事物都具有,则一定要封装在这类事物的总类里。
如果这种能力,很多事物都会经常用到,则可以封装成一个总类的静态方法。

对lz以上的理解非常支持,本人认为这不仅仅是对高内聚低耦合的的直观解释,也是对面向对象很好的一个解释

# re: 对高内聚,低耦合的理解  回复  更多评论   

2011-01-12 13:54 by 久城
@FGW
已修正,多谢。

# re: 对高内聚,低耦合的理解[未登录]  回复  更多评论   

2011-04-25 13:49 by walter
如果这种能力,很多事物都会经常用到,则可以封装成一个总类的静态方法。

是不是Utilities class?

# re: 对高内聚,低耦合的理解[未登录]  回复  更多评论   

2013-08-23 11:12 by 匿名
受益啊,多谢多谢!

# re: 对高内聚,低耦合的理解  回复  更多评论   

2014-05-28 20:07 by 泡沫__opt
瞬间明了!!!大谢!!!

# re: 对高内聚,低耦合的理解  回复  更多评论   

2015-07-20 18:10 by 中二
终于明白了
,别人讲的太深奥了,就不能粗浅的讲么真是蛋疼

只有注册用户登录后才能发表评论。


网站导航:
 

Copyright © 久城