我在大多数具有网格的WindowsForms中都有这种情况 我有一系列相似的代码 - AddNewRow(在网格中),CreateNewEntity,notifyUser,其他一些步骤 现在,我想使用模板类型的模式。但是,我的问题是使用CreateEntity方法,因为有时会传递一个参数,该参数根据正在创建的对象的类型而不同。我应该让createentity接受“对象”类型,在使用该参数时进行转换。我还能以其他方式解决这个设计问题吗?此外,CreateEntity返回正在创建的对象。
实际上,我的场景有MVP模式。现在,大多数表单中的演示者和视图之间的大部分交互是相同的 - 用户点击添加,添加了一个新行,其中包含一些实体的默认值(在网格中显示) ),其他一些常见的东西
答案 0 :(得分:0)
您是否考虑使用模板化功能?这可能不是一个很好的例子,但如果没有更具体的信息,很难想象一个好的例子:
interface IInitializable
{
void Initialize(string input);
}
public T CreateNewEntity<T>(T inputObject, string otherData) where T : IInitializable
{
inputObject.Initialize(otherData);
return inputObject;
}