2010-08-23 107 views
0

有什么方法可以解决我的代码?我有点卡住了。
如何使用工厂创建通用演示者,甚至可能没有非泛型基类?结合泛型MVP模式与抽象工厂模式

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

很多次了通用基础类需要非一般的基地,所以写

public abstract class Presenter 
{} 

public abstract class PresenterOf<T> : Presenter 
{} 

,并使用PresenterOf您的主持人。

然后CreatePresenter可以返回Presenter。显然,这只有在ISomeViewISomeOtherView有一个Presenter可以使用的基类时才有用。

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