2012-03-27 67 views
0

我在WCF中創建了一個簡單的消息傳遞系統,並實現了一個名爲MessageRepository的最小存儲庫。結合服務和存儲層

它實現合同IMessageRepository的是如下:

using System; 
using Violet.Model.Entities; 

namespace Violet.Model.Abstract 
{ 
    public interface IMessageRepository 
    { 
     void DeliverMessage(string message_from, string message_to, string message_text); 
    } 
} 

我現在很困惑,是否執行該調用模型層與數據庫或裝飾[ServiceContract]互動單獨的服務層IService和IMessageRepository本身的[OperationContract]屬性,以最小化我的應用程序中的圖層。

考慮到應用程序會隨着時間而增長,您認爲哪種方法更好?

回答

2

通常,通過服務直接暴露您的數據訪問層可能不是一個好主意。通過創建真正的服務,並簡單地使用您的存儲庫,您可以靈活地獨立更改它們。

通常這被稱爲Single Responsibility Principle