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

标签 oop uml coupling

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

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

最佳答案

简而言之:

软件工程中的凝聚力,就像在现实生活中一样,是指组成一个整体(在我们的例子中假设一个类)的元素有多少可以说它们实际上属于一起。因此,它是衡量由软件模块的源代码表达的每条功能的关联程度。

从 OO 角度看待内聚的一种方法是类中的方法是否使用任何私有(private)属性。

现在讨论比这更大,但高内聚(或内聚的最佳类型 - 功能内聚)是模块的各个部分被分组,因为它们都有助于模块的单个明确定义的任务。

简单来说,耦合就是一个组件(再次,想象一个类,虽然不一定)对另一个组件的内部工作或内部元素了解多少,即它对另一个组件有多少了解。

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

长:

I wrote a blog post about this.它通过示例等详细讨论了所有这些。它还解释了为什么应该遵循这些原则的好处。我认为它可以帮助...

关于oop - 低耦合和高内聚不是相互依赖的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29765088/

相关文章:

java - 如何通过向 Java 中现有的库类添加方法来创建新类?

c++ - 在类外设置 const int 成员变量 (C++)

documentation - UML中图的创建顺序应该是什么?

函数调用的UML图

algorithm - Matlab - Frechet算法

reactjs - Redux 操作取决于/耦合到其他操作

oop - 没有类型转换的语言

oop - 什么是对象遮挡?

oop - 做Use Case时如何描述算法?

coupling - 松散耦合与信息隐藏和易于更改