2
我有一个问题,我的MVP结构是建立在通用的演示者,视图等,我觉得我违反干,我不知道如何解决它。MVP,仿制药和干
例子。
public class Presenter<TView, TModel>
where TView : IView
where TModel : Model
{}
到目前为止,一切都很好,但我希望能有像这样
public class Presenter<TView, TModel>
where TView : IView
where TModel : Model
{}
public class Model<T>
{
public T Value { get;set; }
}
但是,这不能编译,因为对模型中的其中需要泛型参数。 的修复:
public class Presenter<TView, TModel, TModelType>
where TView : IView
where TModel : Model<TModelType>
{}
而且它在这里,我觉得我违反了干,就拿
public class MyPresenter : Presenter<IMyView, MyModel, string>
{}
public class MyModel : Model<string>
{}
我觉得不舒服指定字符串类型的两倍,在主持人,并在模型中, 我只不要指定主持人使用MyModel作为模型,我不关心什么类型的模型(泛型)。一种解决方案是删除模型的通用约束,但是我无法创建我想要的通用模型类层次结构。
我在想整个MVP /泛型的东西吗?
不错,但不是基础模型我定义了一个IModel接口。 – Marcus 2010-08-28 16:53:52