java的高内聚和低耦合_JAVA : 关于高内聚与低耦合

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

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

20190506191422185457.png

内聚:

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

个人理解:

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

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

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

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

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

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

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

耦合:

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

个人理解:

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

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

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

总结:

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值