2011-03-31 38 views
0

我正在使用MVC存儲庫/服務圖層模式創建一個博客。根據關注原則分離,每層必須完成其任務。因此,在我的情況下,檢查用戶對這些對象的權限(例如對博客文章)必須在服務層(SL)內部實現。 這是否意味着從存儲庫層(RL)返回的任何東西必須根據其業務規則在SL中檢查?也許是這樣 - 對於有一天回購被另一個回購替代的情況。例如,如果新存儲庫的方法GetAllMyPosts()不僅不正確地返回我的帖子,而且還返回其他人的帖子,它們應該被SL濾掉。 但在這種情況下,我們有雙重檢查:RL中的一個只檢索我的帖子和其他在SL中篩選任何帖子,但用戶是創建者。 什麼是正確的方式來實現呢?我在哪裏以及如何檢查權限?把我的SL信任轉交給RL? 謝謝!MVC/repository:SoC和雙重檢查

回答

0

不是。如果沒有繼承業務邏輯,可以直接使用回購層。因此,查找等內容可以直接通過。 (再次一些較真可能會認爲這一點)

在您的例子我想有這樣的:

Service.GetAllMyPosts() 
Repo.GetAllPostsForUser(userId) 

所以SL確定當前用戶並適當地調用回購。

+0

好的,我來到了相同的想法 - 相信RL,它會檢索到它必須的:)謝謝。 – Jim 2011-04-01 01:59:56