0

WCF サービスを構築していますが、WCF サービスの設計について質問があります。

例えば:

PersonProductの 2 つのクラスを持つデータ アクセス レイヤーがあるとします。

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

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

どちらのクラスにもSelect()メソッドがあります。これらのクラスを WCF で使用するには、以前のプロジェクトで 2 つの方法を使用しました

1) 2 つのサービス クラス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) 1 つのサービス クラスを作成し、異なる名前を使用します。

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

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

この場合、サービス クラスを 1 つだけ作成/構成する必要があります。ただし、メソッドにはより大きな名前があります (たとえば、 Select( )ではなくPersonSelect( ) ) 。

どちらがより良い方法ですか?なぜ?

ありがとう。

4

1 に答える 1

2

まず、サービスから DataTable/DataSet を返すのは理想的ではありませんが、単一責任の原則に従って質問に答えるには、クラスは 1 つのことだけを行う必要があるため、ProductSelect と PersonSelect が 1 つのことに関連しているように見える場合1 つだけ、それらを一緒に保管してください。それ以外の場合は、分離する必要があります。

アイデアは、変化する傾向があるものを別々に保持して、一方を変更しても他方に影響を与えないようにすることです。

于 2011-10-13T09:27:24.717 に答える