2013-07-23 33 views
1

由於SRP說:單一責任主體和信息庫或應用服務類

類或模塊應該有一個,且只有一個理由去改變

我有一些倉庫類對於實施CRUD操作的每種類型的實體(每種類型,一個存儲庫)。 因此,這些類型的存儲庫類似乎有多個更改原因,例如每個查詢條件可能會發生變化等。

這種情況對於應用程序服務類也是如此,我認爲。

我的問題是:

  • 是否會導致使用這種類型的存儲庫或應用服務類的,違反SRP?
  • 如果違反,我該如何處理這個問題?
+0

您能想到的多種原因是什麼? – Fendy

+0

@Fendy:例如1-爲某些方法添加一些驗證,2-更改一些查詢 – Masoud

回答

1

恕我直言,一個純粹的純粹主義者會爭辯說,是的,不斷修改一個存儲庫以添加代表各種查詢的新方法將違反SRP。不過,我認爲這種存儲庫設計方法已被合理接受。

關於單獨查詢,您可以使用規範模式來勾勒查詢。如果您修改存儲庫以接受規範,那麼他們應該關閉以修改開發新查詢。

+0

謝謝,應用程序服務類又如何? – Masoud

+0

我真的不知道應用程序服務類是。你能給個例子嗎? –

+0

外部消費者使用的應用程序服務與我的系統交談(請考慮Web服務)。如果消費者需要訪問CRUD操作,他們就會暴露在這裏。它的工作如Facade。 – Masoud