0

以下のコードを解決する方法はありますか? 私はちょっと立ち往生しています。
ファクトリを使用して汎用プレゼンターを作成するにはどうすればよいですか?非汎用基本クラスがなくても可能ですか?

public abstract class Presenter<T>
{}

public SomePresenter : Presenter<ISomeVew>
{}

public SomeOtherPresenter : Presenter<ISomeOtherView>
{}

public class Factory()
{

  public ??? CreatePresneter(int runTimeValue)
  {
    if (runTimeValue == 1)
      return new SomePresenter()
    else
      return new SomeOtherPresenter()  
  }

}

4

1 に答える 1

0

多くの場合、ジェネリック基底クラスは非ジェネリック基底を必要とするため、次のように記述します。

public abstract class Presenter
{}

public abstract class PresenterOf<T> : Presenter
{}

PresenterOfプレゼンターに使用します。

その後、CreatePresenter戻ることができPresenterます。明らかに、これはPresenter が作業できる基本クラスがある場合ISomeViewにのみ役立ちます。ISomeOtherView

これらのビューとプレゼンターのインターフェイスに共通性がない場合、1 つのファクトリを使用してすべてを作成するのは意味がないかもしれません。

于 2010-08-23T17:58:36.090 に答える