我正在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]
属性本身是为了最小化我的应用程序中的图层。
考虑到应用程序会随着时间的推移而增长,您认为哪种方法更好?
答案 0 :(得分:2)
通常,通过服务直接公开数据访问层可能不是一个好主意。通过创建真实服务,并简单地使用您的存储库,您可以灵活地独立更改它们。
一般来说,这称为Single Responsibility Principle