Создать лучший сервис WCF - PullRequest
0 голосов
/ 13 октября 2011

Я создаю сервис WCF, и у меня есть вопрос о дизайне сервиса WCF:

Например:

Если у меня есть уровень доступа к данным с двумя классами Человек и Продукт :

public class Person
{
  public DataTable Select()
  {...}
}

public class Product
{
  public DataTable Select()
  {...}
}

Оба класса имеют метод выбора () ,Чтобы использовать эти классы в WCF, я использовал два способа в своих предыдущих проектах

1) Создать два класса обслуживания PersonService и ProductService :

public class PersonService : IPersonService
{ 
   public DataTable Select()
   {
     Person person = new Person();
     return person.Select();
   }
}

public class ProductService : IProductService
{ 
   public DataTable Select()
   {
     Product product = new Product();
     return product.Select();
   }
}

В этом случае мне нужно создавать / настраивать классы обслуживания отдельно.

2) Создайте один класс обслуживания и используйте разные имена:

public class MyService : IMyService
{ 
   public DataTable PersonSelect()
   {
     Person person = new Person();
     return person.Select();
   }

   public DataTable ProductSelect()
   {
     Product product = new Product();
     return product.Select();
   }
}

В этом случае мне нужно создать / настроить только один класс обслуживания.Но методы имеют большие имена (например: PersonSelect () вместо Select () )

лучший способ?а почему?

спасибо.

1 Ответ

2 голосов
/ 13 октября 2011

Прежде всего, не идеально возвращать DataTable / DataSet из службы, но отвечать на ваши вопросы в соответствии с принципом Single-Responsibility , класс должен делать только одно, поэтому если ProductSelectи PersonSelect, по-видимому, связаны только с одной и только одной вещью, держите их вместе, в противном случае они должны быть отделены.

Идея состоит в том, чтобы хранить вещи, которые имеют тенденцию меняться, так, чтобы изменение одного не влияло на другое.

...