0

関連する 2 つまたは 3 つの API に対する多数の API リクエストを処理するアプリケーションを構築しようとしています。私の一般的な戦略は、次の基本クラスApiRequestを 1 つ持つことです。

List<Parameter> Parameters
Uri CombinedUri
string Results
string _Host

およびメソッド:

CombineUri() //combines the _Host and parameters into full Uri
MakeRequest() //makes the request and stores Results

次に、その基本クラスをさまざまな Api 呼び出しに継承し、その API 呼び出しに固有の関数を実装します。

CombineUri()私が抱えている問題は、基本クラスのコンストラクターを呼び出すことですが、_Host既に設定されている必要があります。_Hostただし、異なる Api 呼び出しごとに固有であるため、各子クラスで定数になりたいと考えています。CombineUriすべての派生クラスのコンストラクターから呼び出すことを覚えておく必要はありません。

その問題を回避するためのアイデアは大歓迎です。また、Api 呼び出しのベースを実装するためのまったく別の設計アイデアがある場合、私はすべて耳を傾けます。私のアプローチが最善かどうかはわかりません。

ありがとう。

私の解決策:

John と Colin Pear のアイデアを実装しました。ベースApiRequestを抽象クラスに変更し、CombineUri()メソッドをメソッドに移動しましたMakeRequest()

私もさらに進んでApiRequest、ジェネリック クラスに変更_Hostし、static string. このように、 subclass を持つ各サブクラスApiRequest<*subclassname*>。ジェネリックのプロパティにより、特定のサブクラスの各オブジェクトは static を共有します_Host

4

1 に答える 1