单一责任委托人和存储库或应用程序服务类

时间:2013-07-23 05:45:30

标签: design-patterns repository crud single-responsibility-principle conceptual

正如 SRP 所说:

  

一个类或模块应该只有一个改变的原因

我为每种类型的实体(每种类型,一个存储库)提供了一些实现CRUD操作的存储库类。 因此,这些类型的存储库类似乎有多个改变的原因,例如每个查询条件可能会发生变化等等。

我认为这种情况也适用于应用程序服务类。

我的问题是:

  • 是否会导致使用此类存储库或应用程序服务类违反SRP?
  • 如果违反了,我怎么能处理这个问题?

1 个答案:

答案 0 :(得分:1)

恕我直言,SOLID纯粹主义者会争辩说,是的,不断修改存储库以添加代表各种查询的新方法会违反SRP。但是,我认为这种存储库设计方法已经被合理地接受了。

关于单独查询,您可以使用规范模式来概述您的查询。如果您修改存储库以接受规范,那么在开发新查询时,它们应该关闭以进行修改。