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