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

如果这些视图和演示者在界面上没有共性,那么使用一个工厂来制作它们可能没有意义。

于 2010-08-23T17:58:36.090 回答