画像の処理を担当する 3 つのクラスがあります。ボスは私にそれをマージするように頼んだ。私はそれを 1 つのファイルにマージしましたが、彼は同じことだと言いました。一般的なロジックでマージする必要があります。これら 3 つのゲッターを一般的なゲッターにマージするにはどうすればよいでしょうか?? Type.GetType() に渡されるパラメーターの型のみが異なります。1 つの汎用ゲッターで 1 つの汎用属性を使用する必要があります。
public class BonusImageHandler
{
private static IStorageProvider _BAstorageProvider;
private static IStorageProvider _BAWP8storageProvider;
private static IStorageProvider _M4MstorageProvider;
private static readonly object _lock = new object();
private static IStorageProvider BAStorageProvider
{
get
{
lock (_lock)
{
if (_BAstorageProvider == null)
{
lock (_lock)
{
var storageProviderType = Type.GetType(BLL.Providers.ConfigurationProvider.Instance.BAStorageProviderTypeName);
_BAstorageProvider = (IStorageProvider)Activator.CreateInstance(storageProviderType);
}
}
}
return _BAstorageProvider;
}
}
private static IStorageProvider BAWP8StorageProvider
{
get
{
lock (_lock)
{
if (_BAWP8storageProvider == null)
{
lock (_lock)
{
var storageProviderType = Type.GetType(BLL.Providers.ConfigurationProvider.Instance.BAWP8StorageProviderTypeName);
_BAWP8storageProvider = (IStorageProvider)Activator.CreateInstance(storageProviderType);
}
}
}
return _BAWP8storageProvider;
}
}
private static IStorageProvider M4MStorageProvider
{
get
{
lock (_lock)
{
if (_M4MstorageProvider== null)
{
lock (_lock)
{
var storageProviderType = Type.GetType(BLL.Providers.ConfigurationProvider.Instance.M4MStorageProviderTypeName);
_M4MstorageProvider= (IStorageProvider)Activator.CreateInstance(storageProviderType);
}
}
}
return _M4MstorageProvider;
}
}
}