0

AllFoosという名前空間があるとしましょう。

そして、AllFoos名前空間のすべてのクラスがIFooと呼ばれる特定のインターフェースを実装し、すべてシングルトンであるとしましょう。

今、私たちは持っています:

HashSet<IFoo> myFoos = new HashSet<IFoo>();

コレクションMyFoosにAllFoosのすべてのクラスのシングルトンインスタンスを取り込むためのコードは何でしょうか?

これらすべてのクラスのシングルトン実装は次のとおりです。

private static IFoo _instance = new ConcreteImplementationOfFoo1();

public static IFoo Instance
{
     get
     {
          return _instance;
     }
}
4

1 に答える 1

4

依存性注入フレームワークを使用する場合は、次のことができます。

  1. クラスをコンテナに「シングルトン」として登録します
  2. すべての実装を簡単に登録します(優れたフレームワークでは、いくつかのパターンに基づいて大量登録が可能です)
  3. インターフェイスのすべての実装をリストとして解決します

従来の方法を使用する場合は、シングルトンパターンがどのように見えるか(静的インスタンスプロパティなど)を指定する必要があります。これは、すでにコメントで説明されているように、従来のリフレクションで解決できます。

于 2011-06-03T20:43:53.797 に答える