码迷,mamicode.com
首页 > 编程语言 > 详细

JAVA : 关于高内聚与低耦合

时间:2019-05-06 19:14:22      阅读:209      评论:0      收藏:0      [点我收藏+]

标签:logs   应该   逻辑   定义   算法   理解   影响   实现   种类   

高内聚与低耦合的概念说实话,对本人来说每次提起来总是有些模糊,下午看了一些博主的文章,感觉清晰了一些,在此记录一下个人的理解。

首先感谢几位老哥的文章,如下:

https://blog.csdn.net/qq_39521554/article/details/79489180 

https://www.cnblogs.com/corvoh/p/5747856.html

https://blog.csdn.net/kingscoming/article/details/78836229

技术图片

 

内聚:

每个模块尽可能独立完成自己的功能,不依赖于模块外部的代码。

个人理解:

关于内聚,本人觉得四个字“单一职责”,不管是方法(函数)、类,还是自定义的组件。

比如某个类应该只做它本身做的是,也不应该做过多的事情。比如计算模块,该模块应该只是做计算的事情,而不应该与付款模块发生内容耦合或者说直接耦合之类,

说实在点就是在计算模块中不应该有付款之类的代码存在,计算就应该只是做计算的事情,反之亦然。

那么计算模块中应该有各种类,比如计算加减法的,计算平方的,计算平方根的(举个例子,可能实际工作中就是一个工具类)

那么计算加减法的类中就只是计算加减法,包括到方法中去,加法就计算加法。如果要实现一个复杂的计算比如要加,然后计算平法,然后再减的逻辑,应该在主模块中进行调用。

最终暴露给其他模块的接口不影响付款,具体算法是什么样的,是计算模块说了算,付款模块并不需要关注。

在主模块中调用计算模块的接口,然后再调用付款模块的接口,那么它们只是有非直接耦合的关系。

 

耦合:

模块与模块之间接口的复杂程度,模块之间联系越复杂耦合度越高,牵一发而动全身。

个人理解:

内聚有耦合有着千丝万缕的关系,如果内聚度较高,那么耦合程度必然会有所降低,反之,内聚度低,耦合度响应的也会出现一定上升,但又不一定是必然的。

比如有一个类同时既有计算又有付款,内聚松散,等于2个功能整合为一个功能。那么可以直接把付款类去掉了。

然后主模块中关于计算付款只要调用这一个类中的函数即可,那么是不是整体的耦合度降低了?但是牺牲的是内聚性。

 

总结:

所有本人感觉,如果要达到高内聚,那么在敲代码之前,势必要多花一些时间研究模块的拆分,不管是横向的还是纵向的,

 

以上大多都是个人理解,欢迎拍砖

 

JAVA : 关于高内聚与低耦合

标签:logs   应该   逻辑   定义   算法   理解   影响   实现   种类   

原文地址:https://www.cnblogs.com/jony-it/p/10821226.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!