构建更好的WCF服务

本文关键字:服务 WCF 更好 构建 | 更新日期: 2023-09-27 18:11:20

我正在构建WCF服务,我有一个关于WCF服务设计的问题:

例如:

如果我有一个数据访问层,有两个类PersonProduct:
public class Person
{
  public DataTable Select()
  {...}
}
public class Product
{
  public DataTable Select()
  {...}
}

两个类都有Select()方法。为了在WCF中使用这些类,我在前面的项目

中使用了两种方法

1)创建两个服务类PersonServiceProductService:

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())

哪个是更好的方法?,为什么?

谢谢。

构建更好的WCF服务

首先,从服务返回数据表/数据集是不理想的,但是根据单责任原则回答你的问题,一个类应该只做一件事,所以如果ProductSelect和PersonSelect似乎只与一件事相关,那么把它们放在一起,否则应该分开。

我们的想法是把那些容易改变的东西分开,这样改变一个不会影响另一个。