2010-08-23 4 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 물품.

CreatePresenterPresenter을 반환 할 수 있습니다. 이는 ISomeViewISomeOtherView에 Presenter에서 작업 할 수있는 기본 클래스가있는 경우에만 도움이됩니다.

이러한보기와 발표자가 인터페이스에 공통점이 없으면 하나의 팩토리를 사용하여 모두보기에 적합하지 않을 수 있습니다.

관련 문제