结合服务和存储库层

时间:2012-03-27 12:56:20

标签: wcf repository-pattern

我正在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);
    }
}

现在我很困惑是否要实现一个单独的服务层IService,它调用模型层与数据库交互或修饰IMessageRepository上的[ServiceContract][OperationContract]属性本身是为了最小化我的应用程序中的图层。

考虑到应用程序会随着时间的推移而增长,您认为哪种方法更好?

1 个答案:

答案 0 :(得分:2)

通常,通过服务直接公开数据访问层可能不是一个好主意。通过创建真实服务,并简单地使用您的存储库,您可以灵活地独立更改它们。

一般来说,这称为Single Responsibility Principle