Во многих случаях базовые классы нуждаются в неуниверсальных базах, поэтому напишите
public abstract class Presenter
{}
public abstract class PresenterOf<T> : Presenter
{}
и используйте PresenterOf
для своих докладчиков.
Тогда CreatePresenter
может вернуть Presenter
.Очевидно, что это помогает, только если ISomeView
и ISomeOtherView
имеют базовый класс, с которым может работать Presenter.
Если эти представления и презентаторы не имеют общности в интерфейсе, используйте одну фабрику для их создания.все может не иметь смысла.