我应该编写相同代码的两个版本。一个具有低耦合和高内聚,另一个仍然具有低耦合但这次具有低内聚。我真的不明白有什么区别?我怎样才能有低耦合和低内聚?它们似乎如此相关,以至于这是不可能的。
有人可以解释一下吗?也许举个例子?
谢谢!
最佳答案
简而言之:
软件工程中的凝聚力,就像在现实生活中一样,是指组成一个整体(在我们的例子中假设一个类)的元素有多少可以说它们实际上属于一起。因此,它是衡量由软件模块的源代码表达的每条功能的关联程度。
从 OO 角度看待内聚的一种方法是类中的方法是否使用任何私有(private)属性。
现在讨论比这更大,但高内聚(或内聚的最佳类型 - 功能内聚)是模块的各个部分被分组,因为它们都有助于模块的单个明确定义的任务。
简单来说,耦合就是一个组件(再次,想象一个类,虽然不一定)对另一个组件的内部工作或内部元素了解多少,即它对另一个组件有多少了解。
松散耦合是一种互连系统或网络中的组件的方法,以便这些组件在实际可能的最小范围内相互依赖……
长:
I wrote a blog post about this.它通过示例等详细讨论了所有这些。它还解释了为什么应该遵循这些原则的好处。我认为它可以帮助...
关于oop - 低耦合和高内聚不是相互依赖的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29765088/