ジェネリックインターフェイスまたはクラスを作成してから、このクラスまたはインターフェイスのさまざまなバージョンを非ジェネリックな方法で使用したいという状況に陥ることがよくあります。たとえば、私は次のようなインターフェースを持っているかもしれません:
interface ICanCreate<T>
{
T NewObject();
}
これにより、クラスをそのタイプのファクトリにすることができます。次に、これらを一般的なファクトリクラスに登録したいので、次のように記述します。
public class Factory
{
private Dictionary<Type, ICanCreate> mappings; // what do I put here????
public void RegisterCreator<T>(ICanCreate<T> creator)
{
}
public T Create<T>()
{
}
}
辞書では、値にどのタイプを使用しますか?ある種の設計原理が欠けているかどうかはわかりませんが、これは共(ntra?)分散と多くの関係があることを認識しています。どんな助けやアイデアも大歓迎です。