1つのメソッドStoreData(data)を使用して単一のインターフェイスIStoreにコード化された2つのクラスがあります。1つのクラスはDBに書き込むWebサービスにデータを送信し、もう1つのクラスはDBに直接データを書き込みます。(ファクトリパターン)
public IStore GetStorageClass(StorageType type)
{
if (type == StorageType.WebService)
return new WebService();
else
return new DatabaseStore();
}
ここで、DatabaseStoreクラスが機能するには接続文字列が必要です。問題は、DatabaseStoreに接続文字列を提供するのは誰の責任であり、どのように行うのかということです。私は考えました:
ファクトリは、DatabaseStoreに渡す接続文字列を知っているだけです。
DatabaseStoreコンストラクターは、エンドユーザーが指定した構成からそれを読み取ります。
GetStorageClassの呼び出し元は、正確な実装を認識していませんが、パラメーターが接続文字列であるパラメーターと値のディクショナリを渡します(呼び出し元は、データベースの操作には接続文字列が必要であることを知っています)
どのオプションを選択する必要があり、ここでファクトリパターンを正しく使用していますか?助けに感謝します!