我正在构建WCF服务,我对WCF服务设计有疑问:
例如:
如果我有一个包含两个类 人 和 产品 的数据指南层:
public class Person
{
public DataTable Select()
{...}
}
public class Product
{
public DataTable Select()
{...}
}
这两个类都有 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() 而不是 选择() )
哪种方式更好?为什么?
感谢。
答案 0 :(得分:2)
首先,从服务返回DataTable / DataSet并不理想,但是根据Single-Responsibility原则回答你的问题,一个类应该只做一件事,所以如果ProductSelect和PersonSelect似乎只与一件事和一件事有关,把它们放在一起,否则它应该分开。
我们的想法是保持易于改变的东西,这样改变的东西不会影响另一个。