関連する 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
。