シナリオを取る
BaseA-> SubB-> SubSubC
説明:SubSubCクラスはSubBクラスを継承します。SubBクラスはBaseAクラスを継承します
BaseA-> SubD-> SubSubE
説明:SubSubEクラスはSubDクラスを継承します。SubBクラスはBaseAクラスを継承します
後で..
そのため、BaseAとして祖父母クラスを持つクラスがたくさんあります。BaseAクラスには、すべてのメソッドに共通するいくつかのプロパティがあります。例:CustomerID、LastLogin、UniqueNameなど。
これが私が消費しているサービスでクラスがどのように設計されているかです。
私の疑問は、サービスメソッドを呼び出している間、すべてのメソッドが任意のSubSubクラスのパラメーターを期待することです。誰か教えてもらえますか?BaseAのプロパティに1つの場所で値を割り当てて、SubSubオブジェクトの作成中に、毎回ベースプロパティを入力する必要がないようにする方法はありますか?
言語としてC#を使用しています。
コード:
public class BaseA
{
public int CustomerId { get; set; }
public string UniqueName { get; set; }
}
public class SubB : BaseA
{
}
public class SubSubC : SubB
{
}
public class SubD : BaseA
{
}
public class SubSubE : SubD
{
}
public class MyMain
{
public void SendRequestToService1()
{
(new MyServiceObject()).ServiceMethod1(new SubSubC());
}
public void SendRequestToService2()
{
(new MyServiceObject()).ServiceMethod2(new SubSubE());
}
}
上記のコードでは、SendRequestToService1とSendRequestToService2で、基本クラスのプロパティCustomerIdとUniqueNameを初期化する必要があります。元:
(new SubSubC(){ CustomerId=2, UniqueName="XXBB" });
多くのメソッドがある場合は、それぞれのクラスに対して毎回これらのプロパティを初期化する必要があります。基本プロパティCustomerIdとUniqueNameを1つの場所で初期化して、継承するクラス(ここではSubSubC、SubSubE)がオブジェクトの作成時に初期化する必要がないようにする方法はありますか?