Почему уровень доступа к данным построен с использованием сервиса и поставщика данных? - PullRequest
0 голосов
/ 15 июля 2010

Алло,

Зачем мне 2 класса для получения моих данных? Почему класса DataProvider недостаточно, если служба фактически ничего не делает, кроме вызова метода в DataProvider?

interface ICustomerDataProvider
inferface ICustomerService

class CustomerDataProvider : ICustomerDataProvider
{
    // Do Sql queries here
    // return sql data and write all DataReader data into customer objects....

   public  IEnumerable<Customer> GetCustomers()
 {
    return ...
 }

}

class CustomerService : ICustomerService
{
    public IEnumerable<Customer> GetCustomers()
  {
       return _customerDataProvider.GetCustomers();
  }    
}

class BillingViewModel
{

  _customerService = Service.Resolve<ICustomer>();

 IEnumerable<Customer> customers = _customerService.GetCustomers();

  Customers = new ObservableCollection<Customer>(customers);

}

1 Ответ

1 голос
/ 15 июля 2010

Если ваш сервисный уровень просто вызывает методы у ваших провайдеров данных, это означает, что у вас есть какие-то проблемы с вашим дизайном.

Провайдеры данных используются для извлечения и передачи данных.Требуются небольшие действия.

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

Возьмем для примера сохранение сообщения в блоге: поставщики данных делают это отдельно

  1. SavePost ()
  2. SaveTags ()

, в то время как сервисный слой только делает один

 AddPost()
 {
     SavePost();
     SaveTags();
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...