我在理解low in coupling and high in cohesion语句时遇到问题。我已经在谷歌上搜索和阅读了很多关于这方面的内容,但仍然觉得很难理解。
据我所知,High cohesion意味着我们应该有专门的类来执行特定的功能。希望这是正确的?比如信用卡验证类,它专门用来验证信用卡。
还是不明白低耦合是什么意思?
发布于 2012-12-22 15:32:01
我相信的是:
内聚力是指模块/类的元素在一起的程度,建议相关的代码应该彼此接近,所以我们应该争取高内聚力,并将所有相关的代码尽可能紧密地绑定在一起。它与模块/类中的元素有关。
耦合是指不同模块/类之间相互依赖的程度,建议所有模块尽可能独立,这就是低耦合的原因。
将整个画面可视化将会很有帮助:

截图来自Coursera。
发布于 2015-04-09 03:32:32
Cohesion在软件工程中,就像在现实生活中一样,是指组成一个整体(在我们的例子中,假设是一个类)的元素实际上属于一起的程度。因此,它是衡量由软件模块的源代码表示的每一项功能的相关性有多强的度量。
从面向对象的角度看待内聚力的一种方法是,类中的方法是否使用了任何私有属性。
现在的讨论比这更大,但高内聚(或内聚的最佳类型-函数内聚)是指模块的各个部分被组合在一起,因为它们都对模块的单个定义良好的任务做出了贡献。
简单地说,耦合是指一个组件(同样,想象一个类,尽管不是必须的)对另一个组件的内部工作或内部元素了解多少,即它对另一个组件有多少了解。
松散耦合是一种将系统或网络中的组件互连在一起的方法,以便这些组件在实际可能的最小程度上相互依赖(…
I wrote a blog post关于这一点。它详细地讨论了所有这些,并举例说明了为什么你应该遵循这些原则的好处。
发布于 2016-02-10 16:09:55
在软件设计中,高内聚意味着类应该把一件事情做得很好。高内聚性与Single responsibility principle密切相关。
低耦合建议类应该具有最小可能的依赖性。此外,必须存在的依赖关系应该是弱依赖关系--更喜欢依赖于接口而不是依赖于具体的类,或者更喜欢组合而不是继承。
高内聚和低耦合为我们提供了更好的设计代码,更容易维护。
https://stackoverflow.com/questions/14000762
复制相似问题