私は以下を達成するための最良の方法を探しています:
バックグラウンド
request()
異なるサブクラスを持つ仮想メソッドを持つベースクラスがあり、リクエストを実行するための代替実装を提供します。request()
クライアントがこれらのサブクラスの1つをインスタンス化し、これらのオブジェクトの1つをサブシステムに渡して、必要なときに呼び出すようにするという考え方です。目標は、目的のサブクラスをインスタンス化することによって要求を処理する方法をクライアントに決定させることです。
問題
ただし、特定のサブクラス実装が選択された場合、それはサブシステムからの情報を必要とします。これは、最も自然に要求への引数として渡されます(つまりrequest(special_info);
)。しかし、他のサブクラスはこれを必要としません。この違いや、ここで使用できる適切なデザインパターンを隠すためのクリーンな方法はありますか?
ありがとう