低耦合和高内聚性不是相互依赖的吗?

qwerty qwerty

我应该写同一代码的两个版本。一个具有耦合和内聚力,另一个仍然具有耦合,但是这次具有内聚力。我真的不明白有什么区别吗?如何降低耦合度和凝聚力?它们似乎是如此相关,以至于不可能做到。

有人可以解释吗?也许举个例子?谢谢!

TheBoyan

简而言之:

与现实生活一样,软件工程的凝聚力是可以说组成一个整体(在我们的情况下,我们说一个类)的元素实际上属于同一元素的程度。因此,它衡量了由软件模块的源代码表达的每个功能之间的关联程度。

从OO角度看内聚的一种方法是,如果类中的方法使用任何私有属性。

现在讨论的范围比这个要大,但是高内聚力(或内聚力的最佳类型-功能内聚力)是将模块的各个部分归为一组,因为它们都对模块的一个明确定义的任务有所贡献。

简单来说,耦合就是一个组件(再次设想一个类,尽管不一定)想知道另一个组件的内部工作原理或内部元素,即它对另一个组件有多少知识。

松散耦合是一种将系统或网络中的组件互连的方法,以使这些组件在实际可行的范围内相互依存程度最小……

总而言之:

我写了一篇关于这个的博客文章。它通过示例等详细讨论了所有这些内容。它还解释了为什么遵循这些原则的好处。我认为这可以帮助...

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

相互依赖的类和继承

来自分类Dev

A 和 B 可以在功能上相互依赖吗?

来自分类Dev

使DropDownLists相互依赖

来自分类Dev

TemplateClasses相互依赖

来自分类Dev

相互依赖的信号

来自分类Dev

模块相互依赖

来自分类Dev

使功能相互依赖

来自分类Dev

洋葱架构-外层的不同部分可以相互依赖吗?

来自分类Dev

基本属性可以相互依赖吗?

来自分类Dev

C#和.NET版本是否相互依赖?

来自分类Dev

表单和表单集的相互依赖验证

来自分类Dev

相互依赖的头文件和类/方法无法编译

来自分类Dev

在标准ML中声明相互依赖的值和函数

来自分类Dev

C ++相互依赖的类

来自分类Dev

接口的集合相互依赖

来自分类Dev

选择相互依赖的记录

来自分类Dev

QT插件相互依赖

来自分类Dev

列表元素相互依赖

来自分类Dev

两个芹菜应用程序可以相互依赖吗?一个应用程序的两个任务是相互依赖的?

来自分类Dev

两个芹菜应用程序可以相互依赖吗?一个应用程序的两个任务是相互依赖的?

来自分类Dev

可以(应该)使用JavaScript许诺来实现相互依赖的功能吗?

来自分类Dev

我可以在JavaScript中定义多个相互依赖的变量吗?

来自分类Dev

视图需要相互依赖逻辑:如果没有MODEL,可能吗?

来自分类Dev

我可以/应该在Kotlin中顺序编写这些相互依赖的Volley调用吗?

来自分类Dev

XML Schema中的可接受值范围可以相互依赖吗?

来自分类Dev

多个微调器android相互依赖

来自分类Dev

相互依赖的C模块的单独编译

来自分类Dev

相互依赖的Java静态变量

来自分类Dev

相互依赖茉莉花测试