高内聚低耦合
程序员文章站
2024-03-14 21:21:29
...
多线程学习
明确一点,一个程序如果是高内聚零耦合会是最完美的,但是没有绝对的零耦合。也就不存在什么完美的程序了。
1 什么是高内聚/低耦合?
首先了解什么是内聚/耦合
1.1.1 内聚性:每一个程序中可能会按照不同功能,将整个代码段划分为不同的模块,每一个模块内部元素彼此之间会有某些联系,此种联系就是内聚性。同一个模块中元素联系越加紧密,那就意味着其内聚性就高,反之则不然。
1.1.2 耦合性:除过模块内部的联系外,模块之间也有一些关系,这种关系就是所谓的耦合性,模块之间相互影响的力度愈大耦合性就越强。反之则亦然。
**1.2 **高内聚低耦合:也就是说一个具体的事物,在其具体模块内部元素彼此之间关系紧密,而模块之间的影响十分小。正是对应着模块内、模块间的关系进行相关评估的结果描述。
举个栗子,现在有两个大团队,一为A,一为B;A中有A1、A2、A3等多个小的团队,B中也是有着多个团队。现在有一个功能要求A、B两个团队合作完成;讨论:
首先给定以下两种结果:
高耦合:A、B两个大团队之间的结果相互影响或者其一牵制另一个,进而形成高耦合;
高内聚:A、B两个团队中的每一个小组之间相互团结合作,每一个小组实现的具体功能相互影响,而最终实现本组所负责的部分功能,此能够体现高内聚性;
低内聚低耦合反之即可。对应的组合既能够达到高内聚低耦合要求。
在一定时候,内聚和耦合之间也存在相互牵制的效果,一定程度上,内聚性的增强一定程度上会降低耦合性。
无论是想要实现高内聚、低耦合都需要花费一定的时间从各个方向出发去思考设计;这可能也在一方面体现了算法的精妙之处吧,只是一个较为简单的思路便可能减少很多不必要的开支。
仍在持续更新学习中,如有错误,欢迎指正!!