0

.NET 4.5 の C#:

 public Interface IMyInterface
    {
    public string DoSomething( string input1 )
    }

    public MyClass1 : IMyInterface
    {
    public string DoSomething( string input1 )
    {
    return "1";
    }
    }

    public MyClass2 : IMyInterface
    {
    public string DoSomething( string input1 )
    {
    return "2";
    }
    }

実行時に、ホスティング環境を検出し、ある種の「グローバル」を設定してから、グローバルな常にインスタンスに基づいて、MyClass1 または MyClass2 を使用したいと考えています。単一の「MyClass」を持ち、その内部で多くのケースロジックを実行して環境を検出したくありません。

それを行うための良いパターンまたはプラクティスは何ですか? これは実際にダイナミクスに適した場所ですか?

ありがとう。

4

1 に答える 1

1

Factoryを使用する必要があるようです。MyClass オブジェクトを返すメソッドを Factory クラスに作成します。メソッドの戻り値の型をそのままにしておきIMyInterfaceます。メソッド内で、ホスティング ロジックを実行し、ホスティング ロジックの出力に応じて、適切なクラスをインスタンス化し、オブジェクトへの参照を返すことができます。

于 2012-10-21T02:41:08.800 に答える