2014-12-07 121 views
1

我遇到了this site这句话在Eclipse代码度量的讨论,特别是讨论的“缺乏凝聚力”的理念:“抽象”在“班级凝聚力”或“班级凝聚力”代码指标中意味着什么?

凝聚力是面向对象编程的一个重要概念。它表明一个类是代表单个抽象还是多个抽象。这个想法是,如果一个类表示多个抽象,那么它应该被重构为多个类,每个类表示一个抽象。

在这种情况下什么是“单一抽象”?

Difference between Encapsulation and Abstraction,我得到的抽象通常只是向用户展示必要的细节(通过使用接口和抽象类)。 而这里:What is abstraction?,我再次说明抽象是隐藏实现。

你会如何应用这些想法在那篇文章中所使用的单一抽象项?

+0

我只是通过单个抽象问什么作者的意思 – committedandroider 2014-12-07 02:06:44

+0

单个抽象对应(根据我的理解)让班级对单个任务工作。在单个任务上提供一个图层。 – 2014-12-07 02:14:27

+0

谢谢。但是,你的意思是什么? – committedandroider 2014-12-07 02:16:20

回答

3

在这个特殊的背景下,你引用的网站(cohesion)规定,“单一的抽象”是指一个概念。所以它与Single Responsibility Principle紧密相关 - 一个班级应该处理“一件事”。如果一个班级处理的不止一件事情,它通常会有许多不同的方法和变量,这些方法和变量不一定属于一起,因此它的凝聚力会很低。

这不是一个常用于此目的的词,从​​我的经验来看,它更可能用于关于抽象层次/层次的推理,就像您链接的其他SO问题一样。它们涉及不同的规则,即Single Layer of Abstraction Principle

+0

谢谢,这是一个有意义的想法 – committedandroider 2014-12-07 02:17:54