Skip to content

抽象度违规 (Abstractness Violation)

ID: abstractness | 严重程度: 低 (默认)

此检测器使用 Robert C. Martin 的"主序列" (Main Sequence) 指标来评估模块的稳定性 (I) 和抽象度 (A) 之间的关系。目标是确保模块位于"主序列"附近——一条抽象度随稳定性增加而增加的线。

为什么这是一种坏味道

  • 痛苦地带 (Zone of Pain):高度稳定(很多东西依赖它们)但非常具体(没有抽象)的模块。由于它们的依赖者,这些模块极难更改,但它们的具体性意味着它们需要更改。
  • 无用地带 (Zone of Uselessness):高度抽象(很多接口/抽象类)但非常不稳定(没有人依赖它们)的模块。这些提供了实际上没有被使用的抽象,增加了不必要的复杂性。

如何修复

  • 在痛苦地带:引入抽象(接口、抽象类)来解耦模块的实现与其用户。
  • 在无用地带:考虑使模块更具体或删除未使用的抽象以简化代码。

配置

yaml
rules:
  abstractness:
    severity: medium

Released under the MIT License.