Объединение уровней обслуживания и хранилища - PullRequest
0 голосов
/ 27 марта 2012

Я создаю простую систему обмена сообщениями в 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, который вызывает уровень модели для взаимодействия с базой данных или декорировать атрибуты [ServiceContract] и [OperationContract] в самом IMessageRepository, чтобы минимизировать уровни в мое заявление.

Как вы думаете, какой подход лучше, учитывая, что приложение будет расти со временем?

1 Ответ

2 голосов
/ 27 марта 2012

В целом, вероятно, не очень хорошая идея выставлять свой уровень доступа к данным напрямую через сервис.Создавая реальную службу и просто используя свой репозиторий, вы можете изменять их независимо.

В целом это называется Принцип единой ответственности

...