【问题标题】:What does "abstraction" mean in the context of "class cohesion" or "class cohesiveness" code metrics?在“类凝聚力”或“类凝聚力”代码度量的上下文中,“抽象”是什么意思?
【发布时间】:2015-02-04 23:23:36
【问题描述】:

我在this site 讨论 Eclipse 中的代码度量时遇到了这句话,专门讨论“缺乏内聚力”的概念:

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

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

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

您如何将这些想法应用到那篇文章中使用的单一抽象术语?

【问题讨论】:

  • 我只是问作者一个抽象是什么意思
  • 单一抽象对应于(根据我的理解)让班级致力于单一任务。在单个任务上提供一个层。
  • 谢谢。层是什么意思?
  • 一个层,如提供访问某些已实现功能的方法。

标签: class oop interface abstraction


【解决方案1】:

在此特定上下文中,在您引用的网站 (cohesion) 中定义,“单一抽象”表示一个概念。所以它与Single Responsibility Principle 密切相关——一个类应该处理“一件事”。如果一个类处理不止一个事情,它通常会有许多不同的方法和变量,它们不一定属于一起,因此它的内聚性很低。

这不是这个词的常见用法,根据我的经验,它更有可能用于推理抽象级别/层,就像在您链接的其他 SO 问题中一样。它们与不同的规则相关,即Single Layer of Abstraction Principle

【讨论】:

  • 谢谢,有一件事的想法是有道理的
猜你喜欢
  • 2016-07-17
  • 2011-07-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-19
  • 1970-01-01
  • 2011-12-22
相关资源
最近更新 更多