2010-06-04 85 views
1

背景:我們的應用程序是一個相當直接的MVC Web應用程序,它調用一個服務層。該層使用工作單元模式訪問某些存儲庫,然後將這些對象傳遞給域級服務以執行某些邏輯。它非常乾淨,適合我們。是否將存儲庫接口傳遞給域級服務?

問題:我們現在有一個案例,我們從第三方獲取大量xml並需要處理它。這個過程相當複雜,需要在過程中進行各種庫調用(性能不是問題)。這個邏輯應該以我們所有的邏輯生活在我們的領域。

問題:將接口傳遞給存儲庫以便域級別服務訪問會乾淨嗎?

回答

1

我認爲這是一種設計氣味,將接口傳遞到您的存儲庫以進行此類過程。也許我誤解了,但這聽起來像XML的處理將在倉庫內處理。這是用於存儲的手段嗎?即使如此,這應該由一個單獨的類來處理,該類只處理將接受存儲庫接口的XML。

存儲庫應該只關心處理對數據存儲的訪問。

像這樣的過程需要多次調用存儲庫並不罕見。爲確保您可以對屬性測試XML處理邏輯進行屬性測試,XML處理器應該接受存儲庫的一個接口,以便您可以嘲笑它並單獨測試XML處理

+0

不,處理將不在存儲庫中,只是一個住在域中的服務,接收一個IRepository。 – ericvg 2010-06-04 14:38:35

+0

好的,我當時誤解了。聽起來像你正在傳遞一個接口到存儲庫。因爲這是另一種方式,那麼這就是解決問題的方法。 – 2010-06-04 14:42:31