2009-11-18 45 views
0

我在2年內更新第三次網站的過程中,像這樣的事情發生,所有的時間和一些網站是使用相同的數據庫。我想爲所有這些代碼使用相同的代碼,並且在將來更新時很容易。所以我打算編寫一些接口,然後將業務登錄放入一個服務中,以保持事物的一致性並添加一些單元測試。創造良好的接口,應該包括哪些內容,哪些應該被排除在外

所以我期待在我目前的資料庫,我不知道應該是我的接口是什麼,應該是在我的服務是什麼。

比如我有一個Add方法 - 沒有道理我在接口的添加,並在服務添加的。

然後我有一個AuthenticateAccountManager方法需要3個參數,這應該是在兩個或只是服務,並在我的界面(通過用戶名)有一個簡單的獲取方法,然後對其他2個屬性進行驗證服務。

我也有一個QualifyPartner,設置一個布爾爲true,如果這僅僅是在服務,並再次在我的接口簡單的Get方法,試圖保持這一儘可能小?

回答

1

Separation of Concerns principle- AuthenticateAccountManager是一個服務級操作。它應該調用你的倉庫,它會返回原始的用戶數據。然後,服務會根據存儲庫返回的內容進行身份驗證或不進行身份驗證。

一般指導原則是,知識庫負責檢索和提交數據只有。基於數據解釋和執行行爲是業務邏輯。

+0

謝謝 - 只需要一點保證:) – Slee

+0

所以我有大約20個相關的表,現在我需要我的服務與其中一個相關的表交互,添加方法到我當前的接口或創建一個新的這張新桌子?如果是這種情況,我的服務最終會出現瘋狂的界面瘋狂 - 我該如何決定什麼權利? – Slee

+0

這是OR/M工具幫助很多的地方。讓Entity Framework或Mindscape Lightspeed爲您生成您的存儲庫。 –

相關問題