具有 CRUD 方法的类违反了单一职责原则?

Jav*_*a P 2 spring single-responsibility-principle solid-principles

我试图理解单一责任原则。我有以下问题。

  1. 单一职责原则 (SRP) 规定,类的更改不应有多个原因。通常我们的Resource、Service和Repository类都有create、read、update和delete方法。我们正在更改每个类以修改任何这些操作的代码。是否违反SRP?我们需要为每个动作单独的类吗?

  2. 当我运行声纳 lint 时,我看到了以下消息。

    类不应该与太多其他类耦合。

    这里我使用 spring DI 注入其他类。依赖项数量有限制吗?

我可能错过了这个概念的关键。请推荐一个很好的资源,通过示例更好地理解这个概念

dea*_*mon 5

SRP 规定该类应该只做一件事,例如在存储库的情况下持久保存实体。我猜你在这里混淆了“类”和“对象”:如果你有几种可以改变对象状态的方法,这可能符合SRP。然而,存储库类更改的唯一原因应该与其目的有关,即在这种情况下持久或检索实体。

维基百科关于单一责任原则的文章说得很好。

对于你的第二点:一个类可以拥有的依赖项的最大数量是不存在的,但如果有很多依赖项,则可能是设计缺陷的标志。