2012-03-27 64 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