「ルート」ユーティリティ (オブジェクト) を通じて公開したい一連の Factory オブジェクトがあります。このルート ユーティリティは、それ自体が工場です。ユーティリティ オブジェクトとして、静的クラスとして実装したいと考えています。ただし、現在の設計を使用することはできません...インターフェイスに静的メンバーを実装できないためです。
そう...
私の質問は次のとおりです。以下のクラスを変更して、静的ファクトリが上記に影響を与えるようにするにはどうすればよいですか?
コードは次のようになります。
public interface IFactory
{
I Create<I>();
IFactoryTransform Transformer { get; }
IFactoryDataAccess DataAccessor { get; }
IFactoryValidator Validator { get; }
}
public static class Factory : IFactory
{
static Factory()
{
Transformer = new FactoryTransform();
DataAccessor = new FactoryDataAccess();
Validator = new FactoryValidator();
}
public I Create<I>()
{
var model = typeof(I);
// Activation code will go here...
throw new NotSupportedException("Type " + model.FullName + " is not supported.");
}
public IFactoryDataAccess DataAccessor { get; private set; }
public IFactoryTransform Transformer { get; private set; }
public IFactoryValidator Validator { get; private set; }
}