S3 または Web サーバーのハード ドライブにファイルを保存できるように、アプリケーションのファイル ストレージ部分をある程度柔軟に設計したいと考えています。
また、これをユーザーごとに柔軟にしたいので、ユーザー設定で、ファイルを S3 に保存するか、サーバーのファイル システムに保存するかを選択できます。
私はこのようなことを考えています:
IFileStorage fs = FileStorageFactory.Instance(userSettings);
次に、次のようなメソッドがあります。
public static IFileStorage Instance(UserSettings setting)
{
if(setting == UserSettings.S3)
return new S3FileStorage();
}
これは理にかなっていますか?(私は ac# プログラマですが、これは Java で行います)
私はSpringを使っていますが、ユーザーごとに実装が変わるので、ここではDIは使わないと思います。