2010-08-23 151 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可以使用的基類時纔有用。

如果這些視圖和演示者在界面中沒有共同性,那麼使用一個工廠來完成它們可能沒有意義。