高内聚低耦合,是软件工程中的概念,是判断设计好坏的标准,主要是面向对象的设计,主要看类的内聚性是否高,耦合度是否低。目的是使得模块的可重用性、移植性大大增强。
通常程序结构中各模块的内聚程度越高,模块间的耦合程度就越低。内聚是从功能角度来度量模块内的联系,一个好的内聚模块应当恰好做一件事顷老戚。
它描述的是模块内的功能联系;耦合是软件结构中各模块之间相互连接的一种度量,耦合强弱取决于模块间接口的复杂程度、进入或访问一雀陵个模块的点以及通过接口的数据。
扩展资料
实例说明:
比如订单模块,订单是跟库存息息相关的,没有库存就没有订单,订单强依赖库存。
把扣减库存的逻辑直接写在在订单模块中,那么订单模块和库存模块就耦合了另一方面,订单模块中有扣减库存的逻辑会造成订单模块的功能比较分散,功能就不够集中,便构成含顷了低内聚。
把订单中的库存逻辑给拆分出来一个独立的库存模块,库存模块对外暴露扣减库存的接口,订单模块调用接口实现减少库存的 *** 作,将订单逻辑与库存逻辑的依赖降低到最小,减小了订单与库存的耦合。
同时订单模块只包含订单处理的逻辑,库存系统只包含库存的处理逻辑,两个系统的业务上更加内聚
参考资料来源:百度百科-高内聚低耦合
内聚:一个模块内各个元素彼此结合的紧密程度耦合:一个软件结构内不同模块之间互连程度的度量
最近编码的时候,总是在犹豫是把某个方法封装在一个类里,还是单独的封装成一个类。这让我突然想起内聚耦合这两个名词。
我们一直追求着,高内聚,低耦合。
对于低耦合,我粗浅的理解是:
一个完整的系统,模块与模块之间,尽可能的使其独立存在。
也就是说,让每个模块,尽可能的独立完成某个特定的子功能。
模块与模块之间的接口,尽量的少而简单。
如果某两个模块间的关系比较复杂的话,最好首先考虑进一步的模块划分。
这样有利于修改和组合。
对于低耦合,我粗浅的理解是:
在一个模块内,让每个元素之间都尽可能的紧密相连。
也就是充分利用每一个元素的功能,各施所能,以最终实现某个功能。
如果某个元素与该模块的关系比较疏松的话,可能该模块的结构还不够完善,或者是该元素是多余的。
内升铅聚和耦合,包含了横向和纵向的关系。功能内聚和数据耦合,是我们需要达成的目标。横向的内聚和耦合,通常体现在系统的各个模块、类之间的关系,而纵向的耦合,体现在系统的各个层次之间的关系。
对于我在编码中哗尘的困惑,我是这样想的,用面向对象的思想去考虑一个类的封装。
一个方法,如何封装,拿到现实生活中来看,看这种能力(方法)是否是属于这类事物(类)的本能。
如果是,就封装在这个类里。
如果不是,则考虑封装在其它类里。
如果这种能力,很多事物都具有,则一定要封装在这类吵芦好事物的总类里。
如果这种能力,很多事物都会经常用到,则可以封装成一个总类的静态方法。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)