耦合与凝聚力
耦合和凝聚力是Java中发现的两个概念(以及所有其他面向对象的语言)。耦合衡量每个程序模块的数量取决于其他程序模块。凝聚力衡量每个函数在模块中的强烈相关性。实际上,任何面向对象的语言(包括Java)具有提高凝聚力并同时降低耦合的两个主要目标,以开发最有效的程序。这两个软件工程指标是由Larry Constantine开发的,以降低修改和维护软件的成本。
什么是凝聚力?
凝聚力衡量每个函数在程序模块中的关系程度。结构良好的课程导致高度凝聚力的计划。如果某个类执行一组高度相关的功能,则该类被认为具有凝聚力。另一方面,如果一类正在执行一堆完全无关的功能,则意味着该类根本没有凝聚力。重要的是要了解没有凝聚力并不意味着整体应用没有所需的功能。只是没有凝聚力,很难管理该功能,因为随着应用程序的复杂性随着时间的推移而增加,它们会散布在许多错误的地方。即使对于大多数经验的程序员来说,维持,修改和扩展行为遍布整个代码也非常乏味。
什么是耦合?
耦合衡量每个程序模块的数量取决于其他程序模块。由于存在耦合,因此发生了两个对象之间的相互作用。松散耦合的程序的灵活性和可扩展性很高。强耦合永远不会好,因为一个对象可以高度依赖其他对象。当代码被修改时,这是一场噩梦,因为高耦合意味着程序员需要在几个代码上工作以进行几个行为修改。强耦合总是会导致灵活性低,可扩展性/可扩展性的程序。但是,在Java等编程语言中,完全避免耦合是不可能的。但是,建议程序员尽力减少尽可能多的耦合。也可以有一些耦合来帮助对象相互交互,而不会阻碍其可扩展性和灵活性。
耦合和凝聚力有什么区别?
即使耦合和凝聚力涉及软件工程模块的质量,但它们是完全不同的概念。凝聚力在于该功能在模块中相互关联的程度,而耦合涉及一个模块的数量取决于整个应用程序中的其他程序模块。为了拥有最好的质量软件,凝聚力和耦合应达到其光谱的两个相对端。换句话说,松散的耦合和强烈的凝聚力提供了最佳的软件。拥有私有字段,非公共类和私人方法可提供松散的耦合,同时使所有成员在类中可见,并且包含包装作为默认可见性提供了很高的凝聚力。
发表评论