首页 > 编程知识 正文

最优的内聚设计,高内聚低耦合原则

时间:2023-05-03 10:58:13 阅读:171073 作者:2825

“高凝聚、松耦合”是一种非常重要的设计思想,可以有效提高代码的可读性和可维护性,缩小功能变更代码的变更范围。 许多设计原则旨在实现代码的“高内聚、松散耦合”,如单一职责原则、基于接口而不是编程实现等。

其实,“高凝聚、松散耦合”是一种比较通用的设计思想,可以用来指导各种粒度的代码的设计和开发,包括微服务器、框架、组件、类库等。 为简明起见,接下来将以“班级”作为该设计思想的应用对象展开讲解,其他应用场景的读者可以自行类比。

在这个设计思想中,“高凝聚”用于指导类本身的设计,“松散耦合”用于指导类与类依赖关系的设计。 但是,这两者并不是完全独立无关的。 高聚集有助于松散耦合,松散耦合还需要高聚集的支持。

什么是高内聚?

高凝聚是指相近的功能应该放在同一个班级,不相近的功能不放在同一个班级。 相近的功能可以同时修改,经常放在同一个类中,修改比较集中,代码更容易维护。 其实,单一职责原则是实现高码凝聚非常有效的设计原则。

什么是松耦合?

松散耦合是指在代码中,类和类之间的依赖关系很容易就变得清晰了。 即使两个类存在依赖关系,一个类的代码更改也不会导致或很少导致依赖类的代码更改。 事实上,注入依赖、接口隔离、基于接口而不是编程,以及喜欢的外套法则,都是为了实现代码的松耦合。

“内聚”和“耦合”之间的关系?

如前所述,“高凝聚”有助于“松散结合”。 同样,“低凝聚”也与“紧密结合”相关联。 这在这里用比较图进行说明。 图左部分编码结构为“高聚集、松散耦合”; 右边的部分正好相反,是“低凝聚、紧密结合”。

在图左部分的代码设计中,类的粒度小,各级的作用单一。 相近的功能都被归入一个班级,相近的功能被分成多个班级。 类更加独立,代码凝聚性更高。

由于职责单一,每个类依赖的类更少,代码更低耦合。 一个类中的更改只影响一个依赖类中的代码更改。 你只需要测试这个依赖类是否还在工作就可以了。

在图中右侧的代码设计中,类粒度比较大,低凝聚,功能大而完整,相近的功能被归入一个类。 结果,许多其他类都依赖于这个类。 修改此类中的功能代码会影响依赖于它的多个类。 您需要测试这三个依赖类是否仍然正常工作。 这就是所谓的“牵一发而动全身”。

除此之外,从图中也可以看出,高凝聚、低结合的编码结构更加简单明了,相应地,在保守性和可读性方面确实很好。

总结

“高凝聚、松耦合”是一种非常重要的设计思想,可以有效提高代码的可读性和可维护性,缩小功能变更代码的变更范围。 “高凝聚”用于指导类本身的设计,“松散耦合”用于指导类和类之间依赖关系的设计。

高凝聚是指相近的功能应该放在同一个班级,不相近的功能不放在同一个班级。 相近的功能同时被修改,经常被放在同一个班级里,修改比较集中。 松散耦合是指在代码中,类与类之间的依赖关系简单而清晰。 即使两个类存在依赖关系,但是一个类的代码更改也不会更改或很少更改依赖类的代码。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。