有没有办法解决下面的代码?我有点卡住了。
如何使用工厂创建通用演示者,是否可以在没有非通用基类的情况下使用?
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()
}
}
答案 0 :(得分:0)
很多时候,泛型基类需要非泛型基,所以写
public abstract class Presenter
{}
public abstract class PresenterOf<T> : Presenter
{}
并为演示者使用PresenterOf
。
然后CreatePresenter
可以返回Presenter
。显然,只有ISomeView
和ISomeOtherView
具有Presenter可以使用的基类时,这才有用。
如果这些视图和演示者在界面中没有共性,那么使用一个工厂制作它们可能没有意义。