首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >代码纠结与内聚力的区别?

代码纠结与内聚力的区别?
EN

Stack Overflow用户
提问于 2012-07-10 12:58:55
回答 2查看 2K关注 0票数 0

关于横切关注点和面向方面的编程,您经常会看到关于代码纠缠不清的文章。本文将1代码关联为:

软件系统中的模块可以同时与多个需求交互。例如,开发人员经常同时考虑业务逻辑、性能、同步、日志记录和安全性。如此众多的需求导致每个关注点的实现同时出现元素,导致代码混乱。

这不就是低凝聚力吗?高纠结和低衔接之间有什么区别吗?还是这两个不同的词描述了相同的事物?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-07-10 14:25:21

维基百科:

如果一个关注点的代码与实现其他关注点的代码混合在一起,那么它的实现就是混合的。发生纠结的模块是不连贯的。

如果降低了的内聚力

代码语言:javascript
复制
  - The functionalities embedded in a class, accessed through its methods, have little in common.
  - Methods carry out many varied activities, often using coarsely-grained or unrelated sets of data.

所以..。当代码被纠缠在一起时,它会违反坚实的原则,如单一责任原则、开放封闭原则等。

所有这些原则最常同时发生,违反一项原则/最佳做法导致另一项原则/最佳做法。

但纠缠并不一定意味着代码没有凝聚力,例如,我们可以有一个名为SecurityChecker的类,它可以对用户日志所有与身份验证相关的活动进行身份验证。显然,这将处理多个问题,即身份验证和日志记录。在这里,这将是一个混乱的阶级。另一方面,这两个会议将操作相同的数据集,在这种情况下,可以是用户数据,登录次数,登录次数等。因此,凝聚力可能仍然很高。

这些原则/指导方针/最佳实践中的大多数从不同的角度来看待相同的问题,最终目标是管理不同组件/类之间的依赖关系等,以便在长期运行的中总体设计更加可维护、高效和优雅。

票数 2
EN

Stack Overflow用户

发布于 2012-07-10 13:05:10

非常相似是的。

代码语言:javascript
复制
Cohesion is used to indicate the degree to which a class has a single, well-focused purpose.

因此,如果你有一个目标明确的类,那么它就不会因为做多件事情而“纠缠”了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11413836

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档